当结束时间为 24 小时时,mysql timediff 没有正确的输出

标签 mysql date date-difference

我正在使用数据类型时间来计算上课时间。对于计算,我使用 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/

相关文章:

mysql - 如何根据时间戳列更新unixtime列?

php - POS 的离线数据库支持

mysql - 表中是否可以有切换 UNIQUE 索引?

javascript - REST API 发送的日期格式在 IE 11 中无效

r - 如何将特定(动态)列的日期增加一年?

sql-server - 获取第一行和最后一行的时差

mysql - 如何按月对结果进行分组?

MySQL:STR_TO_DATE 与 YYWW

java - 计算两个 OffsetDateTimes 之间的月数

如果第二行满足条件,则从每个组中删除第一行