目前我有一个需求,就是需要显示两个时间段的差值,关键是要显示剩余几天几小时几分,格式如下图:
本来看着挺简单,
但是当我操作的时候,发现并不简单,
百度了一下,觉得方法都很麻烦,
于是去百度下时间之类的函数,
找到了 to_timestamp 和 extract,
这两个函数个人认为是在oracle中计算两个时间差值(年月日)显示的好办法,
方法如下:
select
extract (day from dt2 - dt1) ||'天'||
extract (hour from dt2 - dt1) ||'小时'||
extract (minute from dt2 - dt1) ||'分钟'||
extract (second from dt2 - dt1) ||'秒' as 时间差
from
( select to_timestamp ('2019-05-05 15:51:50','yyyy-mm-dd hh24:mi:ss') dt1,
to_timestamp ('2019-05-25 15:51:50','yyyy-mm-dd hh24:mi:ss') dt2
from dual
)
执行结果:
当然你也可以使用with temp as 这么写:
with t as (
select to_timestamp('2019-05-25 15:51:50','yyyy-mm-dd hh24:mi:ss')
-to_timestamp('2019-05-05 15:51:50','yyyy-mm-dd hh24:mi:ss') as datec
from dual
)
select extract(day from datec)||'天'
||extract(hour from datec)||'小时'
||extract(minute from datec)||'分钟'
||extract(second from datec)||'秒' as 时间差
from t;
参考:http://www.itpub.net/thread-2054946-1-1.html
后来找到一个更好的地址,建议学习:https://www.cnblogs.com/xqzt/p/4477239.html