在一些数据库中没有直接求两个时间戳的差的函数,需用一些方法来求时间差:
先将时间戳转换为数字类型,再套用公式求两个时间的差,得到结果的单位为秒。
类型转换:
转换为YYYYMMDDHHMISS
cast((time(FORMAT 'YYYYMMDDHHMISS')) as varchar(26))
转换为YYYYMMDD HHMISS
cast((time(FORMAT 'YYYYMMDDBHHMISS')) as varchar(26))
e.g.
>>> time01=194302
>>> time02=204302
公式
>>> time_diff=((time02 / 10000) * 3600 + (time02 / 100 % 100) * 60 + (time02 % 100)) -((time01 / 10000) * 3600 + (time01 / 100 % 100) * 60 + (time01 % 100))
结果(单位:秒)
>>> time_diff
3600.0
>>>
2nd
d = EXTRACT(DAY FROM Date)
h = EXTRACT(HOUR FROM CURRENT_TIMESTAMP);
m = EXTRACT(MINUTE FROM CURRENT_TIMESTAMP);
s = EXTRACT(SECOND FROM CURRENT_TIMESTAMP);
分钟差
mi = (24di + h1 - h2) * 60 + m1 - m2
e.g.
time1: 8月15日07:10:20
time2: 8月14日20:15:20
di =15 - 14 = 1
mi = (24*1 + 7 - 15) * 60 + 15 - 20 = 955