下面的SQL应该检查我的" Projects"今天完成的任何报价的表格,它确实如此。它不做的是选择今天完成的任何报价,如果该字段也有时间(大多数情况下,因为它自动盖章,管理层想要以小时和分钟而不是几天来衡量转弯时间)
如何才能进行以下查询检查日期?
SELECT [Customer name], [$ Amount], [Quote Completed], [Store], [Region]
FROM Projects
WHERE ([Quote Completed] = date()-1);
以上回报:
07/15/2015
但不是:
7/15/2015 12:57:39 PM
答案 0 :(得分:2)
您可以使用DateValue([Quote Completed])
仅比较日期部分,而忽略一天中的时间。但是,这意味着必须为 Projects 表的每一行评估函数,并且db引擎将无法使用索引检索。
因此,使用 Quote Completed 上的索引,您可以在性能方面更好地利用索引。这应该为您提供昨天的所有行,无论他们的时间如何:
WHERE [Quote Completed] >= Date()-1 AND [Quote Completed] < Date();
我根据你的SQL示例提出了这个建议。但是,你提到了今天的约会。对于今天的日期,请改用:
WHERE [Quote Completed] >= Date() AND [Quote Completed] < Date() + 1;