2010-07-02 105 views
3

如何在MS Access中指定日期範圍?以下查詢是否正確?我必須將"2/1/2010"放在引號中嗎?或者我必須做一些像date(2/1/2010)sql access如何在日期間返回

SELECT [Occurrence Number] as Fld 
    FROM [Lab Occurrence Form] 
WHERE [Practice Code]="ACCIM" 
    AND [1 0 Preanalytical (Before Testing)]="1.1 Specimen Mislabeled" 
    AND ([Occurrence Date] Between 2/1/2010 and 2/28/2010); 

下面給我一個類型不匹配

SELECT [Occurrence Number] as Fld FROM [Lab Occurrence Form] WHERE [1 0 Preanalytical (Before Testing)]="1.1 Specimen Mislabeled" AND [Occurrence Date] between "1/1/2009" and "2/2/2010"; 
+0

您是如何使格式化這麼好看? – 2010-07-02 19:30:37

+1

@ user29823498750932874509823745這是一個投入很大回報的問題。在向你的問題添加代碼來破解事情時,一定要付出沉重的回報。然後檢查問題下方的預覽,確保格式符合您的要求。你可以編輯這個問題來看看我的意思。 – ahsteele 2010-07-02 19:33:17

+2

僅供將來參考。在Access中使用圖形查詢生成器,然後查看SQL。在使用日期字段時,它會爲您放置正確的字符。 – JeffO 2010-07-03 10:29:17

回答

18

MS-Access中使用它使用#日期文字Jet引擎:

SELECT Orders.* 
    FROM Orders 
WHERE Orders.OrderDate Between #3/1/96# And #6/30/96#; 
+0

您可以在以下位置瞭解有關Jet引擎的更多信息: http://technet.microsoft.com/en-us/library/cc966377。aspx – 2010-07-02 19:36:10

+1

不,謝謝我討厭JET引擎 – 2010-07-02 19:38:19

+2

通常使用年,月,日更好。月,日,年通常適合Access,但在美國以外的地區可能會變得非常混亂。 – Fionnuala 2010-07-02 19:40:08

2
AND ([Occurrence Date] Between #2/1/2010# and #2/28/2010# 

這是你告訴訪問,將某些內容解釋爲日期時間。

+2

使用年,月,日通常會好得多。月,日,年通常適合Access,但在美國以外的地區可能會變得非常混亂。 – Fionnuala 2010-07-02 19:39:05

+0

關鍵在於您需要一個明確的格式,因爲無論您當地的日期設置如何,Jet/ACE都會將3/4/2010解釋爲美國數據。你可能會認爲你要求2010年4月3日,但Jet/ACE會認爲你要求在2010年3月4日。因此,使用DateSerial()或日期格式是不明智的(#1-Feb-2010# , 例如)。 – 2010-07-02 22:53:05

0

女士訪問數據庫使用「#」表示日期。所以如果你想寫13/12/2013作爲ms訪問可接受的形式,那麼你必須寫作#13/2013 /##。

一個包含兩個字段id和date的名爲「test」的表的示例sql查詢。

select * from test where date =#13/12/2013#。

一個SQL查詢2008 vb.net找到兩個日期

之間的數據庫記錄的例子 「從info_session選擇*,其中i_date之間#」 & & STARTINGDATE 「#和#」 &結束日期& 「#」

0

的具體日期(在Microsoft)選擇要使用的定義如下: 「#」 +月+ 「/」 +日+ 「/」 +年+ 「#」

場一天是01號,02 ---,31
領域月份是一個數字01,02 ...... 12
領域今年是2014年,2015年...等

可以構建SQL場dinamically

ES。在VBScript

dt1="#"&month(date1)&"/"&day(Date1)&"/"&year(Date1)&"#" 
dt2="#"&month(date2)&"/"&day(Date2)&"/"&year(Date2)&"#" 

,然後你可以使用select在外地SQL

其中表訂單中有一個名爲訂購日期 ES場。

SQL="select * from Orders where OrderDate Between " & dt1 & " and " dt2 

現在你可以訪問數據庫