判断一个两个时间段是否有交集

3 篇文章 0 订阅

判断一个两个时间段是否有交集,在很多地方都用到。电影院的售票系统,智能一点的,他在你购买第二张电影票时,判断两张电影票是否有时间冲突,等等。

怎么比较两个时间段呢?若有        电影A开始时间a点 到 结束时间b点    和    电影B开始时间c点 到结束时间d点       的两个时间段。

则,只要比较a与d以及b与c的大小即可

a>d||b<c

如果上面的条件成立,则表明没有交集,

select t.startDate,t.endDate from PersonMovie t 
where t.startDate>'20180101' or t.endDate< '20171201';

或者

select t.startDate,t.endDate from PersonMovie t where t.startDate>'20180101' 
 union all
select t.startDate,t.endDate from PersonMovie t where t.endDate< '20171201';

---------------------------------------------- 

如果 a<d && b>c ,则必有交集
select t.startDate,t.endDate from personmovice t 
where t.startDatef<'20180101' and  t.endDatef> '20171201';

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值