我在数据库中有这样的范围日期:
我想创建一个查询,当数据库中不存在 @FromDate 和 @Todate 参数输入时返回 true/false。
例如:
@Fromdate: 2024-01-18 | @ToDate:2024-01-21 => 正确
@Fromdate: 2024-01-18 | @ToDate:2024-01-24 => 假
@Fromdate: 2024-01-06 | @ToDate:2024-01-08 => 假
@Fromdate: 2024-01-09 | @ToDate:2024-01-09 => 正确
我该怎么做
根据提供的数据和期望的结果,OP正在寻找一种方法来确定两个日期范围是否重叠:
select s.*, case when t.StartDate is not null then 'false' else 'true' end as not_overlap
from (
select '2024-01-18' as StartDate, '2024-01-21' as EndDate union all
select '2024-01-18', '2024-01-24' union all
select '2024-01-06', '2024-01-08' union all
select '2024-01-09', '2024-01-09'
) as s
left join mytable t on t.StartDate <= s.EndDate and t.EndDate >= s.StartDate;