本来oracle有自动的时间差计算,但是只能精确到天,语句如下:
SELECT
round(to_number(END_TIME - START_TIME)) -
WHERE
... ...
FROM
TABLE_NAME
其中round的意思是取整数,无四舍五入的机制:
但是如果要像倒计时一样具体到天:小时:分:
round(to_number(END_TIME - START_TIME))
||':'||
mod(round(to_number(END_TIME - START_TIME)*24),24)
||':'||
mod(round(to_number(END_TIME - START_TIME)*24*60),60)
三个字段分别对应的是天数:小时数:分钟数:
这里道理相同:
round(to_number(End_TIME - START_TIME)*24 表示总的小时数:
mod(a,4)的意思是对数字a做对4的取模运算,如a = 7,那么 mod(a,4) = 3;
求同的天数:
round(to_number(END_TIME - START_TIME))
求总小时数:
round(to_number(END_TIME - START_TIME)*24
求总分钟数:
round(to_number(END_TIME - START_TIME)*24*60
求总秒数:
round(to_number(END_TIME - START_TIME)*24*60*60