【发布时间】:2008-12-26 19:47:33
【问题描述】:
我在 SQL Server 2005 中有一个包含三列的表:
id (int),
message (text),
timestamp (datetime)
时间戳和id都有索引。
我有兴趣进行查询以检索给定日期的所有消息,例如“2008 年 12 月 20 日”。但是我知道简单地执行 where timestamp='12/20/2008' 不会给我正确的结果,因为该字段是一个日期时间字段。
有人建议使用 DATEPART 函数并从时间戳中提取年、月和日,并验证它们分别等于 2008、12 和 20。看起来这不会使用我在时间戳上的索引,最终会进行全表扫描。
那么,构建查询以利用已创建的索引的最佳方法是什么?
【问题讨论】:
标签: sql sql-server database