В настоящее время я занимаюсь разработкой системы управления событиями, в которой база данных хранит временные интервалы следующим образом:
SlotId | DateTime | Duration
-------+---------------------+---------------
1 | 2011-06-06 15:00:00 | 5.0
2 | 2011-06-06 14:00:00 | 3.0
3 | 2011-06-07 11:00:00 | 8.0
Обратите внимание, что Duration
- это DOUBLE
в часах, а DateTime
- TIMESTAMP
,
В таблице четко видно, что временные интервалы 1 и 2 конфликтуют, тогда как временные интервалы 2 и 3 и временные интервалы 1 и 3 не конфликтуют.Как мы можем написать оператор SQL для обнаружения столкновений между двумя временными интервалами?