格式化通配符在ms访问查询日期字段
我有一个日期域DTB_VER.VER_DATUM
在我所有的完整日期(例如03-04-2012)的MS Access数据库。格式化通配符在ms访问查询日期字段
当我创建一个字符串格式(vb.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 & "#"
你可以不喜欢与日期使用。如果你想选择一个月中的所有日子,你需要这样的东西: -
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"
碰巧,你可以使用Like,这很令人惊讶。我尝试了使用ADO连接在Access中进行模拟,并且它可以工作,正如您从OP对我的评论中看到的那样。 – Fionnuala 2012-08-03 13:30:47
Heey richard,感谢您的回答,但我正在寻找一种使用通配符的方法(例如,搜索一天或一个月或一年或这三者的组合)。 – user1573875 2012-08-04 10:04:25
在日期中使用通配符时要小心。如果您将Access应用程序的数据部分移植到另一个数据库,您可能会发现它不支持通配符。 – 2012-08-06 15:15:33
什么是您的区域设置的日,月,年订单? – Fionnuala 2012-08-03 11:43:32
VER_DATUM是访问数据库中的日期/时间字段? – Steve 2012-08-03 11:58:09
dd-MM-yyyy是我使用的订单。 – user1573875 2012-08-03 11:59:05