今天在维护某个项目的时候需要查询数据库中某个字段和现在的时间差在二分钟之内的数据,经过上网查询得知,需要用到oracle的函数ceil,这个函数的作用是获取二个时间之间的天数,有了天数,时分秒自然就都有了,下面看几个例子吧
计算二个时间之间的小时数
select ceil((to_date('2017-11-01 15:11:12','yyyy-mm-dd hh24:mi:ss') - to_date('2017-11-01 12:11:24','yyyy-mm-dd hh24:mi:ss'))*24) from dual
计算二个时间之间的分钟数
select ceil((to_date('2017-11-01 15:11:12','yyyy-mm-dd hh24:mi:ss') - to_date('2017-11-01 15:06:24','yyyy-mm-dd hh24:mi:ss'))*24*60) from dual
计算二个时间之间的秒数
select ceil((to_date('2017-11-01 15:11:22','yyyy-mm-dd hh24:mi:ss') - to_date('2017-11-01 15:11:06','yyyy-mm-dd hh24:mi:ss'))*24*60*60) from dual
在我的实际需求用到的的sql代码如下
select count(*) from ntf_s_sms_wait t where ceil(t.last_sent_time - sysdate) > 2
在用ceil函数时需要注意的是,相减的二个字段必须都是日期类型的,实际的维护中遇到的问题,在这记录下,希望对大家能有所帮助。