我正在使用数据类型时间来计算上课时间。对于计算,我使用 TIMEDIFF(endtime,starttime)
。
查询
SELECT TIMEDIFF('00:26:08','21:58:18') FROM students_session WHERE id='#'
我没有得到正确的 o/p,它是 02:27:50
。相反,我得到了 -21:32:10
,这是错误的。
如何解决这个问题?
最佳答案
问题是您知道'00:26:08'
在'21:58:18'
之后(第二天早上), 但 MySQL 并不知道,因此从 MySQL 的角度来看,结果是正确的。
您需要提供日期部分,其中 end_date
为第二天,或者您需要向 end_date
添加 24 小时(1 天)。这些将告诉 MySQL end_date
大于 start_date
,您将获得预期的结果。
SELECT TIMEDIFF(timeadd('00:26:08','24:00:00'),'21:58:18') from students_session where id='#'
关于当结束时间为 24 小时时,mysql timediff 没有正确的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40340704/