with
table1 as
( select 1 id, to_date('2017-05-15','YYYY-MM-DD') date_from, to_date('2017-06-12','YYYY-MM-DD') date_to from dual union all
select 2 id, to_date('2018-03-20','YYYY-MM-DD') date_from, to_date('2018-04-11','YYYY-MM-DD') date_to from dual )
select
*
from
table1
where
/*
to_date('2018-03-01','YYYY-MM-DD') < date_to
and to_date('2018-03-31','YYYY-MM-DD') > date_from
to_date('2018-04-01','YYYY-MM-DD') < date_to
and to_date('2018-04-30','YYYY-MM-DD') > date_from
* /
to_date('2018-04-01','YYYY-MM-DD') < date_to
and to_date('2018-04-03','YYYY-MM-DD') > date_from
;
Declare @date1 Date
Declare @date2 Date
set @date1 = <<give your first date>> 'yyyy-dd-mm
set @date2 = <<give your second date>> 'yyyy-dd-mm
SELECT * FROM tbldate WHERE CONVERT(DATE,@date1) BETWEEN from_date and to_date OR CONVERT(DATE,@date2) BETWEEN from_date and to_date
4条答案
按热度按时间s71maibg1#
这很简单:
哪里
@from_date
以及@to_date
只是你的变量。我用了一个
OR
因为你不是在寻找一个包容的范围。这只是部分匹配。你想要符合这个记录的条件吗
from_date=2018-03-20
以及to_date=2018-04-11
让我们根据以下情况回顾一下情况WHERE from_date >= @from_date OR to_date <= @to_date
```@from_date = 2018-03-01 --false
@to_date = 2018-03-31 --true
@from_date = 2018-04-01 --true
@to_date = 2018-04-30 --false
@from_date = 2018-04-01 --true
@to_date = 2018-04-03 --true
vi4fp9gy2#
oracle示例:
mqkwyuun3#
尝试以下示例:
nxowjjhe4#
谢谢大家的回复。我找到了答案。
如果使用cakephp3: