2014-10-30 109 views
1

我想從表中選擇所有昨天的記錄(而不是最後24小時的記錄)。有問題的字段被定義爲DateTime(在Access 2007中)並且格式爲dd/mm/yyyy hh:mm:ss使用日期時間字段選擇Yesterday記錄

我的第一個想法(根據許多其他Q&A's)將採取類似的做法:

SELECT * FROM someTable WHERE DateAdded = DateAdd("d", -1, Now()) 

儘管曾經提到過,在字段格式,則意味着作爲條件比較時間值不返回任何結果好。

我的下一個想法是把DateTime領域轉換成日期,就像這樣:

SELECT * FROM someTable WHERE cDate(Added) = DateAdd("d", -1, cDate(Now())) 

再次,沒有記錄返回,雖然。

如果我運行下面的查詢,但是,都返回29/10/2014

--SELECT yesterdays date 
SELECT DateAdd("d", -1, cDate(Now())) --Returns 29/10/2014 

--SELECT the date of the last record 
SELECT TOP 1 cDate(Added) FROM someTable ORDER BY Added DESC --Returns 29/10/2014 

所以我的問題是你如何選擇昨天的記錄?

回答

2

你的WHERE子句中需要包括從昨天所有的日期/時間值(在午夜到今天午夜昨天之間即24小時內),所以你需要做的

SELECT * 
FROM someTable 
WHERE DateAdded >= DateAdd("d", -1, Date()) 
    AND DateAdded < Date() 
+0

非常感謝,品牌現在感覺! – Gareth 2014-10-30 14:38:18

相關問題