とりあえずメモ。
時間が空いたときに書き直して整理する。
SQLで開店時間と閉店時間などを条件とする際、日付をまたぐケースがある場合、単純に大小比較やBETWEENでは比較できないので、少しややこしくなる。
多分、こんな感じになるとおもう。
-- お店が18:00:00に開いているかを調べる場合
SELECT
shop.shop_id,
shop.shop_name
shop.open_time,
shop.close_time
FROM
shop
WHERE
(
(shop.open_time < shop.close_time -- exp: 10:00 - 22:00
AND '18:00:00' BETWEEN shop.open_time AND shop.close_time
)
OR (shop.open_time > shop.close_time -- exp: 17:00 - 02:00
AND (
'18:00:00' BETWEEN shop.open_time AND '23:59:59'
OR '18:00:00' BETWEEN '00:00:00' AND shop.close_time
)
)
)