【发布时间】:2013-09-08 11:47:45
【问题描述】:
我需要检查 MySQL 以查看两个日期间隔是否相交。 为了更好地解释我的问题:我有一个事件管理模块。如果我们有这样添加的事件:
开始日期:
'2013-09-09 08:00:00'结束日期:
'2013-09-09 10:00:00'
现在我想添加另一个类似这样的事件:
案例A:
开始日期:
'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) 我无法弄清楚...
【问题讨论】: