Oracle timeStamp时间类型相减,单位为毫秒

关于时间日期的相减的知识有很多,但是大部分是以秒为单位的,由于项目指标的要求,统计平均交易时间(毫秒级别),自己总结如下:

1.计算时间首先将时间类型转为为字符类型;

2.然后将时间类型转换为对应的时间类型相减;

3.接着截取毫秒范围内的字符串;

4.将结果转换为数字类型进行相应的统计计算。


例如:

计算某统计区间内最大的交易时间?

--统计时间区域内的最大交易时间
select max(
to_number(
substr(
(
to_timestamp(to_char(结束字段,'yyyy-mm-dd hh24:mi:ss.ff6'),'yyyy-mm-dd hh24:mi:ss.ff6') -
to_timestamp(to_char(开始字段,'yyyy-mm-dd hh24:mi:ss.ff6'),'yyyy-mm-dd hh24:mi:ss.ff6')
)
*86400000,2,9)
)
) from 表 a 
where a.开始字段 > 左区间
and a.结束字段 < 右区间

注意:

1.格式化'yyyy-mm-dd hh24:mi:ss.ff6'是直接格式化到毫秒级别,默认为6位;

2.86400000代表“时”转换为“毫秒”的转换量;

3.substr(a,2,9)是将正确截取对应的毫秒差,因为一般to_timestamp相减之后的格式为:+000000001  00:00:00:000000000,这时我们需要的是“+”后面,第一个“空格”前面的。

 

小提示:

to_date只能处理秒及以上的时间,不能处理毫秒级别的。

 

 

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值