oracle中时间运算

Oracle两个函数相减,默认得到的是天数,按日期格式,精准到响应的精度,如用sysdate(2015/12/7 10:17:52),时间差精确到秒。

在此基础上,oracle两个时间相减默认天数*24得到相差的小时数,oracle两个时间相减默认天数*24*60得到相差的分钟数,oracle两个时间相减默认天数*24*60*60得到相差的秒数。

Months_between (date1,date2):给出date2-date1的月份。

某次利用此对时间类型操作时发生了错误,记录如下:

设有效期固定为6分钟,创建时间字段createdtime,现要对有效期以外的内容做一次更新,语句写为:

update tablename set a = '1' where (sysdate - createdtime)*1440 > 6;

但是执行此语句的时候发现并不能进行正确过滤,测试以后发现 (sysdate - createdtime)*1440结果并不是有效时间,将其进行类型转换以后正常:

update tablename set a = '1' where to_number((sysdate - createdtime))*1440 > 6;

其他参考http://blog.csdn.net/redarmy_chen/article/details/7351410

原文地址:https://www.cnblogs.com/space-place/p/5177496.html