sql >> Base de Datos >  >> RDS >> Mysql

Tratando con los tiempos y después de la medianoche

Almacenar minutos (int(4) sin firmar) es el camino a seguir.
Sin embargo, en lugar de almacenar el día de la semana + hora_de_apertura, hora de cierre (con desplazamiento),
debe almacenar los minutos desde el lunes a las 12 a.m. :-

 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

Entonces, la hora actual es el martes a la 1:30 am, que es:-

 // mysql expression
 $expr = (weekday(current_timestamp)+1) * 1440 + (hour(current_timestamp)*60) + minute(current_timestamp)

El SQL:-

 select ... 
 from opening_hours
 where
 open_time  >= $expr and
 close_time <= $expr;