标准SQL中没有重叠的新活动记录(startdate,enddate)

时间:2015-07-02 18:51:54

标签: sql

记忆表

startdate           enddate             activity
2015.07.01 19:00    2015.07.01 19:30    a
2015.07.01 19:30    2015.07.01 19:45    b
2015.07.02 15:00    2015.07.02 15:30    c

限制:

两个活动的时间段不应相互重叠,即在另一个活动结束之前不能开始新的活动。

每天不能超过24小时作为当天活动间隔的总和。

谢谢

1 个答案:

答案 0 :(得分:0)

当且仅当每个范围的开始位于另一个范围的结尾之前时,两个日期范围重叠。即。

(Start1, End1) overlaps (Start2, End2)
if and only if
Start1 < End2 && Start2 < End1

您可以围绕此检查编写查询,而不会太麻烦。