mysql timediff在endtime为24小时时没有正确的输出

时间:2016-10-31 10:51:33

标签: mysql date date-difference

我正在使用数据类型时间来计算所采用的课程时间。为了计算,我使用TIMEDIFF(endtime,starttime)

查询

SELECT TIMEDIFF('00:26:08','21:58:18') FROM students_session WHERE id='#'

我没有得到02:27:50的正确o / p。相反,我得到-21:32:10,这是错误的。

如何纠正这个问题?

1 个答案:

答案 0 :(得分:1)

问题是知道'00:26:08''21:58:18'之后(早上),但是MySQL并不知道,因此从MySQL的角度来看结果是正确的

您需要提供日期部分,end_date落到第二天,或者您需要将24小时(1天)添加到end_date。这些将告诉MySQL end_date大于start_date,您将获得预期的结果。

SELECT TIMEDIFF(timeadd('00:26:08','24:00:00'),'21:58:18') from students_session where id='#'