Я ищу расширенный ответ на вопрос, заданный здесь:
Определите, перекрываются ли два диапазона дат
где любая из дат в любом диапазоне дат может быть нулевой. Я придумал следующее решение, но я не уверен, что его можно упростить далее.
(StartA == NULL || StartA <= EndB) &&
(EndA == NULL || EndA >= StartB) &&
(StartB == NULL || StartB <= EndA) &&
(EndB == NULL || EndB >= StartA)
Предполагая:
Диапазоны DateTime от StartA до EndA и StartB до EndB
РЕДАКТИРОВАТЬ: Извините, что я быстро переместил вышеприведенную логику, которая, похоже, терпит неудачу, когда даты начала и окончания диапазона равны NULL. См. Решение David ниже для лучшего и хорошо объясненного подхода.