これを処理するためのパフォーマンス面での優れた方法はありません。正しい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))