start_delta
и end_delta
типа TIME
. В start_delta
с помощью триггера или планировщика записываем результат вычисления TIME(start)
, в end_delta
записываем TIMEDIFF( end, TIMESTAMP(DATE(start)) )
.SELECT *
FROM my_table
WHERE
TIME('16:00:00') BETWEEN start_delta AND end_delta OR
ADDTIME( '16:00:00', '24:00:00') BETWEEN start_delta AND end_delta
start_delta
и end_delta
.