Я пытаюсь написать оператор SQL, который сравнивает временные диапазоны. Из этого вопроса я получил несколько прекрасных идей:
Сравнение диапазонов дат
Проблема, однако, заключается в том, что времена охватывают полночь, например с учетом следующего времени начала и окончания:
- 19: 00 - 20: 00
- 21: 00 - 21: 30
- 23: 00 - 01: 00
- 01: 00 - 03: 00
Я хочу найти любые строки, где времена пересекаются / перекрываются 23:30 - 00:30. Код, который у меня есть, работает только в том случае, если и строки в БД, и временной диапазон, который я хочу проверить, начинаются и заканчиваются в один и тот же день.
Я пытался преобразовать время в секунды с полуночи, а затем добавить 86400 секунд к конечному времени, если диапазон охватывает полночь. Я имел ограниченный успех с этим, но он все еще пропускает некоторые перекрывающиеся диапазоны.