看起來應該有一種方法可以使其更高效。難度是任意的日期範圍和所述範圍的數量。根據多個日期範圍優化查詢選擇
在此查詢中,我試圖從任務表中檢索行,其中日期(無論何時)是2013-01-01,2013-01-03,2013-01-09或2013-02-01
tasks
|id | int |
|begin_date| datetime |
SELECT * FROM tasks
WHERE (tasks.begin_date >= '2013-01-01' AND tasks.begin_date < '2013-01-01')
OR (tasks.begin_date >= '2013-01-03' AND tasks.begin_date < '2013-01-04')
OR (tasks.begin_date >= '2013-01-09' AND tasks.begin_date < '2013-01-10')
OR (tasks.begin_date >= '2013-02-01' AND tasks.begin_date < '2013-02-02')
有沒有一個「適當」的方式來做到這一點?還是更有效率的方式?
我使用SQL Server 2008的
下面兩個答案(一個部分似乎從另一個複製!)已複製的使用「2013-01-01」你的錯誤,而不是「2013 -01-02' –