Sql 在ms access查询中对日期字段设置通配符格式

Sql 在ms access查询中对日期字段设置通配符格式,sql,vb.net,ms-access,string.format,Sql,Vb.net,Ms Access,String.format,我的MS Access数据库中有一个日期字段DTB_VER.VER_数据,包含所有完整日期,例如2012年4月3日 使用字符串formatvb.net创建以下查询时: Dim sql as string = string.format("SELECT * FROM DTB_VER WHERE VER_DATUM LIKE '{0}%-{1}%-{2}%'", day, month, year) 通过这个查询,我可以完美地搜索一天、一年或两者的组合,但只要输入一个月,它就会失败,我不知道为什么

我的MS Access数据库中有一个日期字段DTB_VER.VER_数据,包含所有完整日期,例如2012年4月3日

使用字符串formatvb.net创建以下查询时:

Dim sql as string =  string.format("SELECT * FROM DTB_VER WHERE VER_DATUM LIKE '{0}%-{1}%-{2}%'", day, month, year)
通过这个查询,我可以完美地搜索一天、一年或两者的组合,但只要输入一个月,它就会失败,我不知道为什么

有什么想法吗

更新:

我尝试了以下方法:

SELECT * FROM DTB_VER where Day(Ver_datum) like '*day*' and Month(Ver_datum) like '*month*' and year(Ver_datum) like '*year*'

同样,我可以搜索日期、年份或两者的组合,并将月份留空,但我无法搜索月份。

例如,您可以使用访问日期格式

sql="SELECT * FROM DTB_VER WHERE VER_DATUM=#" & year & "/" & month & "-/" & day & "#"
不能将LIKE与日期一起使用。如果要选择一个月内的所有天数,则需要以下内容:-

sql="SELECT * FROM DTB_VER WHERE VER_DATUM>=#" & year & "-" & month & "-01# and VER_DATUM<#" & format(dateadd("m",1,cdate(year & "/" month & "/" & day),"yyyy/mm") & "/01"

您所在地区的日、月、年顺序是什么?VER_DATUM是access db中的日期/时间字段?dd-MM-yyyy是我使用的顺序。不,等等,我只是仔细检查了它,它是一个日期字段,格式设置为dd-MM-yyyyy当您说设置了格式时,您的意思是设置了format属性吗?这可以掩盖问题。格式应该来自区域设置。如果是这样,您可以使用Like,这是令人惊讶的。我用ADO连接在Access中尝试了一个模型,它成功了,正如你在我的评论中看到的。Heey richard,谢谢你的回答,但我正在寻找一种使用通配符的方法,例如搜索一天、一个月、一年或这三者的组合。在日期中使用通配符时要小心。如果将Access应用程序的数据部分移植到另一个数据库,您可能会发现它不支持通配符。