它不漂亮,但它有效。
SET @endDate = '2020-06-27 10:02:00';
SET @startDate = '2020-06-26 12:59:01';
SELECT
CONCAT(
IF(FLOOR(TIMESTAMPDIFF(SECOND, @startDate, @endDate) / 86400) > 0,CONCAT(FLOOR(TIMESTAMPDIFF(SECOND, @startDate, @endDate) / 86400), '.'),''),
LPAD(FLOOR((TIMESTAMPDIFF(SECOND, @startDate, @endDate) % 86400)/3600),2,'0'), ':',
LPAD(FLOOR((TIMESTAMPDIFF(SECOND, @startDate, @endDate) % 3600)/60),2,'0'), ':',
LPAD((TIMESTAMPDIFF(SECOND, @startDate, @endDate) % 60),2,'0')
);
结果21:02:59
SET @endDate = '2020-06-27 10:02:00';
SET @startDate = '2020-06-26 09:59:01';
SELECT
CONCAT(
IF(FLOOR(TIMESTAMPDIFF(SECOND, @startDate, @endDate) / 86400) > 0,CONCAT(FLOOR(TIMESTAMPDIFF(SECOND, @startDate, @endDate) / 86400), '.'),''),
LPAD(FLOOR((TIMESTAMPDIFF(SECOND, @startDate, @endDate) % 86400)/3600),2,'0'), ':',
LPAD(FLOOR((TIMESTAMPDIFF(SECOND, @startDate, @endDate) % 3600)/60),2,'0'), ':',
LPAD((TIMESTAMPDIFF(SECOND, @startDate, @endDate) % 60),2,'0')
)
结果1.00:02:59