我需要一个sql来查找同一房间内事件的重叠日期范围

时间:2013-08-15 22:48:41

标签: sql date range

我需要编写一些SQL来查找在同一个房间内发生的重叠日期范围。例如,我有字段room_num,start_time和stop_time。每条记录代表在该room_num中发生的会话。我需要查找具有相同房间号的任何会话是否会相互重叠。

1 个答案:

答案 0 :(得分:0)

你可以尝试这样的事情。请注意 - 我还没有测试过!

select e1.room_num, 
   e1.start_time, e1.stop_time
   e2.start_time, e2.stop_time 
from events e1, events e2
where 
   (e1.start_time between e2.start_time and e2.end_time
    or e1.end_time between e2.start_time and e2.end_time)
   and e1.room_num = e2.room_num

如果之间的不起作用(可能是Oracle特定的),请将其重写为两个单独的> =和< =条件。