我是一个包含三个字段的表:id,startDate和endDate。
现在我需要准确地在startDate和endDate之间获取记录。
例如,让我们假设我的表格包含以下记录:
id startDate endDate
1 2011-02-05 2011-02-10
2 2011-02-01 2011-02-06
3 2011-02-06 2011-02-08
例如startDate是2011-02-05,结束日期是2011-02-10,输出应该是以下
id startDate endDate
1 2011-02-05 2011-02-10
3 2011-02-06 2011-02-08
但根据我的查询第二条记录也出现在输出中。实际上它不应该......
我的查询是:
SELECT * FROM tblname WHERE startDate AND expiryDate BETWEEN'2011-02-05'EN'2011-02-10'
如何解决此问题?
提前致谢..
答案 0 :(得分:3)
您无法将两列与这样的范围进行比较。 AND和OR运算符连接布尔表达式。您的查询被解释为“WHERE startDate是布尔值true,expiryDate是在这些日期之间”。
SELECT
*
FROM
tblname
WHERE
startDate BETWEEN '2011-02-05' AND '2011-02-10'
AND
expiryDate BETWEEN '2011-02-05' AND '2011-02-10'