Sql 使用DateTime字段选择昨天的记录

Sql 使用DateTime字段选择昨天的记录,sql,datetime,ms-access,select,Sql,Datetime,Ms Access,Select,我试图从表中选择所有昨天的记录(而不是过去24小时的记录)。该字段定义为DateTime(在Access 2007中),格式为dd/mm/yyyy hh:mm:ss 我的第一个想法(根据许多其他想法)是采取如下方法: SELECT * FROM someTable WHERE DateAdded = DateAdd("d", -1, Now()) 如前所述,字段格式意味着在条件比较时间值时不会返回结果 我的下一个想法是将DateTime字段转换为如下日期: SELECT * FROM some

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

我的第一个想法(根据许多其他想法)是采取如下方法:

SELECT * FROM someTable WHERE DateAdded = DateAdd("d", -1, Now())
如前所述,字段格式意味着在条件比较时间值时不会返回结果

我的下一个想法是将
DateTime
字段转换为如下日期:

SELECT * FROM someTable WHERE cDate(Added) = DateAdd("d", -1, cDate(Now()))
不过,还是没有返回任何记录

但是,如果我运行以下查询,它们都返回2014年10月29日的

--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

因此,我的问题是如何选择昨天的记录?

您的WHERE子句需要包含昨天的所有日期/时间值(即昨天午夜到今天午夜之间的24小时时间段),因此您需要这样做

选择*
从某处
其中DateAdded>=DateAdd(“d”,-1,Date())
和DateAdded
非常感谢,现在有意义了!