Lưu trữ phút (int (4) unsigned) là một cách để thực hiện.
Tuy nhiên, thay vì lưu trữ ngày trong tuần + giờ mở cửa, giờ đóng cửa (có bù trừ),
bạn nên lưu trữ phút kể từ 12 giờ sáng Thứ Hai:-
Monday 18:00 = (1 - 1)*60 * 18 = 1080
Tuesday 02:00 = (2 - 1)*60 * 24 + (2 * 60) = 1560
...
// please take note shop could have different operating hour for each day
Vì vậy, thời gian hiện tại là 1:30 sáng Thứ Ba, tức là:-
// mysql expression
$expr = (weekday(current_timestamp)+1) * 1440 + (hour(current_timestamp)*60) + minute(current_timestamp)
SQL:-
select ...
from opening_hours
where
open_time >= $expr and
close_time <= $expr;