我有一个包含两个TIME列的表:time_from
和time_to
。现在我需要选择time_from>的所有行 currentTime 和time_to< currentTime的。
例如, time_from 为22:00, time_to 为2:00,现在为23:45。在这种情况下,2:00是明天,应选择此行。有人能指出我正确的查询吗?
答案 0 :(得分:2)
select *
from YourTable
where NOW() between time_from and time_to
答案 1 :(得分:1)
由于您处理TIME
值,我相信此查询:
select *
from TEST
where
(time_from < time_to and cast(NOW() as TIME) between time_from and time_to)
or
(time_from > time_to and cast(NOW() as TIME) > time_from)
or
(time_from > time_to and cast(NOW() as TIME) < time_to);
它可以安全地比较时间,即使它们超过白天时间(例如:from 22:00 to 02:00
)。
选中此SQLFiddle