基于cuttent time的MYSQL查询重定制

时间:2015-09-23 19:10:47

标签: mysql sql mysql-error-1064

查询以获取说明时间和结束时间之间的记录列表

前:

Start_time    End_time 
----------------------

22:00         05:00

20:00         02:00

如果我在时间之间查询必须得到那些结果不使用任何特定日期。我用过Now()之间不值得任何人有好主意

1 个答案:

答案 0 :(得分:0)

尝试使用DATE_FORMAT(dt,'%H:%i')从日期获取HH:MI字符串,然后将其与start_timeend_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)
            )  
          ); 

SQLFiddle demo