比较 MySQL 中的 TIMEDIFF

Jac*_*her 4 mysql sql date

我有以下数据:

ID   TIMEIN                 TIMEOUT
1    2016-08-24 20:44:00    2016-10-22 19:35:36
2    2016-08-24 20:58:00    2016-08-24 20:59:09
Run Code Online (Sandbox Code Playgroud)

以及我想用来查找 timediff 小于 50 小时的所有条目的以下查询

SELECT TimeDiff(TimeOut,TimeIn) 
from table where TimeDiff(TimeOut,TimeIn) < '50:00:00' 
Run Code Online (Sandbox Code Playgroud)

应该返回第二行,因为它小于 50 小时,但第一行,timediff 超过 50 小时也继续返回。

02:04:57
15:10:49
125:00:25
Run Code Online (Sandbox Code Playgroud)

它返回各种值,包括大于 50 的值

我应该使用什么查询?谢谢

too*_*ice 5

请尝试以下...

SELECT id,
       timeIn,
       timeOut,
       TIMEDIFF( timeOut,
                 timeIn ) AS timeDifference
FROM table
WHERE TIMESTAMPDIFF( SECOND,
                     timeOut,
                     timeIn ) > 180000;
Run Code Online (Sandbox Code Playgroud)

此语句将输出每个记录的字段,其中两个时间日期之间的差异为 1 秒或超过50 hours (or180000 秒`)。

如果您有任何问题或意见,请随时发表相应的评论。

  • 并且有一个陷阱:当参数以相同的顺序出现时,TIMEDIFF 和 TIMESTAMPDIFF 会产生相反的符号。 (2认同)

Jib*_*ran 3

尝试获取小时数差异,然后进行比较。

SELECT TimeDiff(TimeOut,TimeIn) 
from table where HOUR(TIMEDIFF(endDate, startDate)) < 50 
Run Code Online (Sandbox Code Playgroud)