我正在尝试选择2个单独的日期范围之间的所有记录。
例如所有在2019-12-31至2019-01-01之间以及从2017-12-31至2017-01-01之间的记录
如果需要,我还希望能够向查询添加另一个日期范围,但它们可能不遵循,即可能会错过一年。
我只是无法理解此过程的mysql代码。
此刻我正在使用它,但它不起作用:
SELECT * FROM sa_incidents
WHERE
incidentDate
BETWEEN '2019-01-01' AND '2019-12-31'
OR '2017-01-01' AND '2017-12-31'
我希望结果显示这些日期之间的所有记录。
但是,它显示了整个表中的所有记录,包括2014年的任何日期。
如果我使用AND运算符,它将仅显示第一个范围,即2019年的所有日期。
答案 0 :(得分:2)
将两个 BETWEEN 都包裹在单独的括号()
SELECT * FROM sa_incidents
WHERE
(incidentDate BETWEEN '2019-01-01' AND '2019-12-31')
OR (incidentDate BETWEEN '2017-01-01' AND '2017-12-31')