访问 SQL returns 今天的日期是好的,但如果它包含一个不好的时间则不是今天的日期

Access SQL returns today's date which is good but not today's date if it includes a time which is bad

下面的 SQL 应该检查我的 "Projects" table 是否有今天完成的任何报价,确实如此。它不做的是 select 如果该字段中也有时间,则今天完成的任何报价(大多数情况下都会这样做,因为它会自动标记并且管理层希望以小时和分钟而不是天为单位来衡量周转时间)

如何让下面的查询只检查日期?

SELECT [Customer name], [$ Amount], [Quote Completed], [Store], [Region]
FROM Projects
WHERE ([Quote Completed] = date()-1);

以上returns:

07/15/2015

但不是:

7/15/2015 12:57:39 PM

您可以使用 DateValue([Quote Completed]) 只比较日期部分,忽略一天中的时间。然而,这意味着必须为 Projects table 的每一行评估该函数,并且数据库引擎将无法使用索引检索。

因此,有了 Quote Completed 上的索引,您将在性能方面更好地利用索引。这应该会为您提供昨天日期的所有行,而不管它们是一天中的什么时间:

WHERE [Quote Completed] >= Date()-1 AND [Quote Completed] < Date();

我根据您的 SQL 示例提出了该建议。但是,您提到了今天的日期。对于今天的日期,请改用它:

WHERE [Quote Completed] >= Date() AND [Quote Completed] < Date() + 1;