需求:
从数据库里面查询两个时间的差值,并输出为xx天xx小时xx分钟xx秒的字符串格式。
解决:
SELECT
CONCAT(
FLOOR(seconds/86400),'天',
FLOOR(seconds%86400/3600),'小时',
FLOOR((seconds%3600)/60),'分钟',
FLOOR((seconds%3600)%60),'秒'
) AS '相差的时间'
FROM
(SELECT IFNULL(TIMESTAMPDIFF(SECOND,create_date,update_date),0) AS seconds FROM xx ) AS t
思路:
TIMESTAMPDIFF(SECOND,t1,t2) => t2 - t1 的秒数差值(两个时间隔多久再转换为秒数),
Floor => 向上取整
CONCAT(s1,s2,s3…) =>多个字符串连接
算法:
seconds/86400 =>天数
(seconds%86400)/3600 =>小时
(seconds%3600)/60 =>分钟
(seconds%3600)%60 =>秒