我需要检查 MySQL 以查看两个日期间隔是否相交。为了更好地解释我的问题:我有一个事件管理模块。如果我们有一个像这样添加的事件:
开始日期 :
'2013-09-09 08:00:00'
结束日期 :
'2013-09-09 10:00:00'
现在我想添加另一个像这样的事件:
案例一:
开始日期 :
'2013-09-09 09:00:00'
结束日期 :
'2013-09-09 11:00:00'
或者像这样:
案例B:
开始日期 :
'2013-09-09 07:00:00'
结束日期 :
'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
),我无法弄清楚...