如果用 TIMEDIFF
计算时间差的话,会出现最大限制,最大格式化为34天23小时59分钟,这显然是不合需求的
TIME值的范围可以从"-838:59:59"到"838:59:59"
所以使用 unix_timestamp
计算时间差
参数:
FLOOR(X):
该函数返回X的最大整数值,但不能大于X。
CONCAT(str1,str2,…):
将字符串str1、str2等进行拼接
sql
select
concat( floor(diff/24/60/60),
'天',
floor( (diff/60/60)%24),
'小时',
floor( (diff/60)%60),
'分钟 ') as '格式化时间差',
diff as '时间差'
from
(select
unix_timestamp(newTime) - unix_timestamp(oldTime) as diff
from
`table`) as t
结果示例: