我有如下代码:
select date
from date_table
where date between '2019-05-01' and '2019-07-31'
and date between '2020-05-01' and '2020-07-31'
但是当我运行上面的代码时,它没有显示任何行,尽管我只使用成功运行
select date
from date_table
where date between '2019-05-01' and '2019-07-31'
有人知道为什么吗?
假设您想要OR
这两个日期范围:
SELECT date
FROM date_table
WHERE
date BETWEEN '2019-05-01' AND '2019-07-31'
OR
date BETWEEN '2020-05-01' AND '2020-07-31';
将这两个范围进行"与"运算永远不会返回任何记录,因为这两个区域是互斥的,任何日期都只能属于其中一个区域。
顺便说一句,如果你想包括2019年5月1日至2019年7月31日(包括2019年((其他范围也有类似的逻辑(,那么你应该使用不等式:
SELECT date
FROM date_table
WHERE
date >= '2019-05-01' AND date < '2019-08-01'
OR
date >= '2020-05-01' AND date < '2020-08-01';