2012-08-03 105 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