2012-08-03 67 views
0

我有一个日期域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*' 

我又可以在一天或一年或两者的组合搜索(并留下空白月),但我可以不搜索一个月。

+0

什么是您的区域设置的日,月,年订单? – Fionnuala 2012-08-03 11:43:32

+0

VER_DATUM是访问数据库中的日期/时间字段? – Steve 2012-08-03 11:58:09

+0

dd-MM-yyyy是我使用的订单。 – user1573875 2012-08-03 11:59:05

回答

0

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

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" 
+0

碰巧,你可以使用Like,这很令人惊讶。我尝试了使用ADO连接在Access中进行模拟,并且它可以工作,正如您从OP对我的评论中看到的那样。 – Fionnuala 2012-08-03 13:30:47

+0

Heey richard,感谢您的回答,但我正在寻找一种使用通配符的方法(例如,搜索一天或一个月或一年或这三者的组合)。 – user1573875 2012-08-04 10:04:25

+0

在日期中使用通配符时要小心。如果您将Access应用程序的数据部分移植到另一个数据库,您可能会发现它不支持通配符。 – 2012-08-06 15:15:33