查询获取开始时间和结束时间之间的记录列表
例如:
Start_time End_time
----------------------
22:00 05:00
20:00 02:00
如果我在这段时间内查询必须得到那些结果,我不使用任何特定日期。我用了 Now() Between 不值得任何人有好主意
最佳答案
尝试使用DATE_FORMAT(dt,'%H:%i')从日期获取 HH:MI
字符串,然后将其与 start_time
和 end_time
进行比较,具体取决于 start_time>end_time
或不是。
SET @start_time = '22:00';
SET @end_time = '05:00';
select *
from T
where (
(@start_time<=@end_time)
AND (DATE_FORMAT(dt,'%H:%i') >= @start_time)
AND (DATE_FORMAT(dt,'%H:%i') <= @end_time)
)
OR
( (@start_time>@end_time)
AND
(
(DATE_FORMAT(dt,'%H:%i') >= @start_time)
OR
(DATE_FORMAT(dt,'%H:%i') <= @end_time)
)
);
关于MYSQL根据当前时间查询结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32747643/