一尘不染

MySQL将timediff输出转换为日,时,分,秒格式

mysql

这是我的查询:

SELECT TIMEDIFF(end_time,start_time) AS "total" FROM `metrics`;

这给了我:

116:12:10

表示116小时12分10秒。

相反,我想说的是4天20小时12分钟等


阅读 515

收藏
2020-05-17

共1个答案

一尘不染

SELECT CONCAT(
FLOOR(HOUR(TIMEDIFF('2010-01-06 08:46', '2010-01-01 12:30')) / 24), ' days ',
MOD(HOUR(TIMEDIFF('2010-01-06 08:46', '2010-01-01 12:30')), 24), ' hours ',
MINUTE(TIMEDIFF('2010-01-06 08:46', '2010-01-01 12:30')), ' minutes')

在我的示例中,将end_time和start_time用于固定的datetime值

根据以下两条评论,此解决方案仅适用于35天内的日期差异。如果您知道开始到结束之间有35天以上的时间,即一个月内有差异,请不要使用它。在这里使用TIMESTAMPDIFF的其他答案将起作用。

2020-05-17