SQL查询时间范围

时间:2014-01-09 10:52:29

标签: mysql sql datetime

我有一个包含两个TIME列的表:time_fromtime_to。现在我需要选择time_from>的所有行 currentTime 和time_to< currentTime的。 例如, time_from 为22:00, time_to 为2:00,现在为23:45。在这种情况下,2:00是明天,应选择此行。有人能指出我正确的查询吗?

2 个答案:

答案 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