gpt4 book ai didi

mysql - 检查两个日期间隔是否相交

转载 作者:可可西里 更新时间:2023-11-01 07:13:33 24 4
gpt4 key购买 nike

我需要检查 MySQL 以查看两个日期间隔是否相交。为了更好地解释我的问题:我有一个事件管理模块。如果我们有这样添加的事件:

start date : '2013-09-09 08:00:00'

end date : '2013-09-09 10:00:00'

现在我想添加另一个这样的事件:

案例A:

start date : '2013-09-09 09:00:00'

end date : '2013-09-09 11:00:00'

或者像这样:

案例B:

start date : '2013-09-09 07:00:00'

end date : '2013-09-09 12:00:00'

我不应该这样做,因为在那个时间间隔 (08-10) 中已经添加了一个事件

对于第一个例子(case A),我通过这样做解决了这个问题:

SELECT * FROM `events` as e 
where
'2013-09-09 08:00:00' between e.ev_date_start and e.ev_date_end -- date start
OR
'2013-09-09 11:00:00' between e.ev_date_start and e.ev_date_end -- date end

但是对于第二种情况(case B),我很难弄清楚...

最佳答案

想法是检查它们是否不相交,然后取反。

NOT ('2013-09-09 08:00:00' >= e.ev_date_end OR e.ev_date_start >= '2013-09-09 11:00:00')

逻辑上等同于

'2013-09-09 08:00:00' < e.ev_date_end AND e.ev_date_start < '2013-09-09 11:00:00'

关于mysql - 检查两个日期间隔是否相交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18683321/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com