mysql计算两个时间的年月日时分秒值差(yMdHms)
两个时间开始时间 : ‘2009-11-24 15:10:00’结束时间:‘2009-11-24 15:12:24’计算他们的时间差,精确到时分秒,如果某一项为0,就不显示,例如:0h1m0s,结果为:1m,sql如下SELECTCONCAT(CONCAT(CASEWHEN(TIMESTAMPDIFF(HOUR ,'2009-11-24 15:10:00' ,'2009-11-24 15:12:2
·
两个时间
开始时间 : ‘2000-11-24 15:10:00’
结束时间: ‘2222-12-25 15:12:24’
计算他们的时间差,精确到时分秒,如果某一项为0,就不显示,例如:0h1m0s,结果为:1m,
sql如下
SELECT
CONCAT(
CASE
WHEN
(TIMESTAMPDIFF(YEAR ,'2000-11-24 15:10:00' ,'2222-12-25 15:12:24')) = 0
THEN ""
ELSE
concat(TIMESTAMPDIFF(YEAR ,'2000-11-24 15:10:00' ,'2222-12-25 15:12:24'),"y")
END,
CONCAT(
CASE
WHEN
(TIMESTAMPDIFF(MONTH ,'2000-11-24 15:10:00','2222-12-25 15:12:24')%12) = 0
THEN ""
ELSE
concat(TIMESTAMPDIFF(MONTH ,'2000-11-24 15:10:00' ,'2222-12-25 15:12:24')%12 ,"M")
END,
CONCAT (
CASE
WHEN
(TIMESTAMPDIFF(DAY ,'2000-11-24 15:10:00' ,'2222-12-25 15:12:24')%30) = 0
THEN ""
ELSE
concat(TIMESTAMPDIFF(DAY ,'2000-11-24 15:10:00' ,'2222-12-25 15:12:24')%30 ,"d")
END
,
CONCAT(CONCAT
(
CASE
WHEN
(TIMESTAMPDIFF(HOUR ,'2000-11-24 15:10:00' ,'2222-12-25 15:12:24')%60) = 0
THEN ""
ELSE
concat(TIMESTAMPDIFF(HOUR ,'2000-11-24 15:10:00' ,'2222-12-25 15:12:24')%60 ,"h")
END
,
CONCAT(
CASE
WHEN
(TIMESTAMPDIFF(MINUTE ,'2000-11-24 15:10:00' ,'2222-12-25 15:12:24')%60) = 0
THEN ""
ELSE
concat(TIMESTAMPDIFF(MINUTE ,'2000-11-24 15:10:00' ,'2222-12-25 15:12:24')%60 ,"m")
END,
(CASE WHEN
(TIMESTAMPDIFF(SECOND ,'2000-11-24 15:10:00','2222-12-25 15:12:24')%60) = 0
THEN ""
ELSE concat(TIMESTAMPDIFF(SECOND ,'2000-11-24 15:10:00' ,'2222-12-25 15:12:24')%60 ,"s")
END
)))))))AS "时间"
得到结果:
TIMESTAMPDIFF(单位,开始时间,结束时间)函数
其中单位可以为:
1、YEAR 年
2、QUARTER 季度
3、MONTH 月
4、WEEk 星期
5、DAY 天
6、HOUR 小时
7、MINUTE 分钟
8、SECOND 秒
9、FRAC_SECOND 毫秒
更多推荐
已为社区贡献3条内容
所有评论(0)