使用DateTime字段选择昨天记录

时间:2014-10-30 14:11:34

标签: sql datetime ms-access select

我正试图从表中选择所有昨天的记录(不是最近24小时的记录)。相关字段定义为DateTime(在Access 2007中),格式为dd/mm/yyyy hh:mm:ss

我的第一个想法(根据许多其他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

所以我的问题是你如何选择昨天的记录?

1 个答案:

答案 0 :(得分:2)

你的WHERE子句需要包括昨天的所有日期/时间值(即昨天午夜到今天午夜之间的24小时),所以你需要这样做

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