Il n'y a pas un excellent moyen de gérer cela en termes de performances. Le bon where
déclaration est :
where (start <= end and :time between start and end) or
(end < start and :time not between end and start)
Bien sûr, vous n'êtes pas obligé d'utiliser between
, vous pouvez développer ceci :
where (start <= end and :time >= start and :time <= end) or
(end < start and (:time <= end or :time >= start))