我有以下数据表:
id startdate finishdate
4 2015-09-17 2016-09-28
5 2016-08-17 2016-09-12
现在我需要这个日期的数据 - 2016-02-02
例如,如果我输入此日期2016-02-02
,则只会显示第一个数据。
现在,如果我输入日期 - 2016-08-10
,那么它将显示两个数据。
我尝试过:
select * from customer where startdate >='2016-02-02' or finishdate<='2016-02-02'
但它不起作用。
我怎样才能实现这一目标?
答案 0 :(得分:6)
你的逻辑只是倒退:
select c.*
from customer c
where startdate <= '2016-02-02' and finishdate >= '2016-02-02';
我建议您不要将between
用于日期。 Here是Aaron Bertrand关于为什么这是个坏主意的一个非常好的解释。