MySQL按时间问题过滤

时间:2017-09-19 06:09:51

标签: mysql

我需要按时间过滤记录,因此我将此查询应用于MySQL

SELECT * FROM TABLE WHERE TIME(created_at) >= '07:00:00' AND TIME(created_at) <= '06:59:59';

这应该在24小时之间过滤所有记录,但没有输出,但是如果我改变时间如下查询它完​​美地运作

SELECT * FROM TABLE WHERE TIME(created_at) >= '00:00:00' AND TIME(created_at) <= '23:59:59';

我试图在两个给定时间段之间找到差异,我得到的结果是这样的

SELECT TIMEDIFF('00:00:00','23:59:59');

给了我-23:59:59小时的总差异

,而

SELECT TIMEDIFF('07:00:00','06:59:59');

给我的是00:00:01,但我想它应该是-23:59:59,如上所述

解决这个简单问题的更好方法是什么??

1 个答案:

答案 0 :(得分:0)

它有一天过路,所以解决方案就是这样的

SELECT * FROM TABLE WHERE ((TIME(created_at) >= '07:00:00' AND TIME(created_at) <= '23:59:59') OR (TIME(created_at) >= '00:00:00' AND TIME(created_at) <= '06:59:59'));