MySQL convert timediff output to day, hour, minute, second format

后端 未结 5 1771
你的背包
你的背包 2020-11-30 06:39

This is my query:

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

which gives me:

116:12:10
5条回答
  •  忘掉有多难
    2020-11-30 07:33

    I used the answer given by Bodgans, but I added a condition to insert a 0 before quantities less than 10.

    CONCAT(
      IF(FLOOR(TIMESTAMPDIFF(SECOND, startDate, endDate) / 86400) < 10, '0', ''),    FLOOR(TIMESTAMPDIFF(SECOND, startDate, endDate) / 86400), ' days ',
      IF(FLOOR((TIMESTAMPDIFF(SECOND, startDate, endDate) % 86400)/3600) < 10, '0', ''), FLOOR((TIMESTAMPDIFF(SECOND, startDate, endDate) % 86400)/3600), ' hours ',
      IF(FLOOR((TIMESTAMPDIFF(SECOND, startDate, endDate) % 3600)/60) < 10, '0', ''), FLOOR((TIMESTAMPDIFF(SECOND, startDate, endDate) % 3600)/60), ' minutes ',
      IF((TIMESTAMPDIFF(SECOND, startDate, endDate) % 60) < 10, '0', ''), (TIMESTAMPDIFF(SECOND, startDate, endDate) % 60),  ' seconds'
    )
    

    In that way, we can get a result as follows

    09 days 10 hours 06 minutes 30 seconds

提交回复
热议问题