我正在尝试创建一个特定的查询。 例如 我有事件表:
id | start | end
-----------------------------------------
1 | 10-08-2013 12:00 | 10-08-2013 14:00
2 | 10-08-2013 12:00 | 10-08-2013 14:00
3 | 10-08-2013 15:00 | 10-08-2013 16:00
我想插入一个新的event( start: 13:00, end: 15:30 )
,在此之前我想通过查询检查同时有多少事件。在这种情况下,结果应为3:因为2个事件在开始时间,1个在结束时间。
感谢。
答案 0 :(得分:4)
重叠的正确逻辑是:
where new_startDate <= end and
new_endDate >= start
答案 1 :(得分:2)
尝试一下,
SELECT COUNT(DISTINCT ID) totalCOunt
FROM tableName
WHERE new_startDate BETWEEN start AND end
OR
new_endDate BETWEEN start AND end
其中new_startDate
和new_endDate
是事件的新日期。