Non c'è un ottimo modo in termini di prestazioni per gestirlo. Il corretto where
affermazione è:
where (start <= end and :time between start and end) or
(end < start and :time not between end and start)
Naturalmente, non è necessario utilizzare between
, puoi espanderlo:
where (start <= end and :time >= start and :time <= end) or
(end < start and (:time <= end or :time >= start))