Няма страхотен начин по отношение на производителността да се справите с това. Правилното where
изявлението е:
where (start <= end and :time between start and end) or
(end < start and :time not between end and start)
Разбира се, не е нужно да използвате between
, можете да разширите това:
where (start <= end and :time >= start and :time <= end) or
(end < start and (:time <= end or :time >= start))