oracle计算时间差,某年某月某日某时某分,如剩余3天04小时36分

目前我有一个需求,就是需要显示两个时间段的差值,关键是要显示剩余几天几小时几分,格式如下图:

本来看着挺简单,

但是当我操作的时候,发现并不简单,

百度了一下,觉得方法都很麻烦,

于是去百度下时间之类的函数,

找到了 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值