我有一個表如何查詢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