数据库中的日期范围不存在查询范围日期

问题描述 投票:0回答:1

我在数据库中有这样的范围日期:

我想创建一个查询,当数据库中不存在 @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 => 正确

我该怎么做

sql sql-server datetime range
1个回答
0
投票

根据提供的数据和期望的结果,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;
© www.soinside.com 2019 - 2024. All rights reserved.