似乎应该有一种方法可以提高效率。困难在于任意日期范围和所述范围的数量。
在此查询中,我试图从任务表中检索日期(无论时间)为 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。