我有一个表如何查询SQL Server表。基于SQL Server 2005中有三个列的具体日期
我有兴趣做一个查询,检索给定日期的所有消息,比如'12/20/2008'。不过,我知道只是做timestamp = '12/20/2008'的地方不会给我正确的结果,因为这个字段是日期时间字段。
有人推荐使用DATEPART函数,并将年,月和日拉出时间戳,并验证它们分别等于2008,12和20。它看起来像不会使用我在时间戳上的索引,并且最终会进行全表扫描。
那么构建我的查询的最佳方式是什么,以便我利用我创建的索引?
SQL服务器不够聪明,不能理解它只需要为语句计算@MyDate + 1一次吗? – erikkallen 2008-12-26 19:52:38
也许吧。不过,我知道它不会为getdate()做这件事。当然这是一个函数调用,它有点不同。但是我对于在where子句中不需要的东西留下任何偏执。 – 2008-12-26 20:04:44