本文主要是介绍oracle计算时间差的问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
之前有个需求是oracle存储过程中计算两个时间的时间差,本来以为数据库中直接相减就可以了,但是经过测试,发现了一点问题。就是总是比预想的值要大1,比如说2月22日,减去2月21日,值竟然是2。然后2月21日减去2月21日,值是1。进一步在pl/sql中测试:
发现了问题所在,原来是值的精度问题。会把当天的时分秒也算是,所以21日执行这个语句,得到的结果是0.6度。然后四舍五入就是1。
发现问题就要解决问题。第一种方法就是把oracle的函数sysdate获取的日期时间经过格式化得到日期值,把时间去除。我是这么写的:
先转化成varchar类型,再转化成date类型。两个日期相减,就是得到了想要的值。
另外一种方法也可以解决这个问题:就是采用trunc函数,去除小数点后面的值,而且不进行四舍五入。
这样,得到的值就可以满足需求了。
这篇关于oracle计算时间差的问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!