oracle中计算时间差,精确到时分秒

来源:互联网 发布:锁眼卫星数据 编辑:程序博客网 时间:2024/06/06 03:57

首先,如果你的时间类型都是date那么直接相减,不用转换,如果转换的话精确不到时分秒:

(*24:精确到时 *60:精确到分 *60 :精确到秒

select (end-start)*24*60*60 from dual;

如果不是日期类型,需要先将这两个时间转化为date型,然后在查询即可

select (to_date(end,'yyyy-mm-dd hh24:mi:ss')-to_date(start,'yyyy-mm-dd hh24:mi:ss'))*24*60*60 from dual;

oracle如何查询出最近15天的数据,如果没有数据则为0???

sql> 

select to_char( (endtime - starttime)*24*60*60 ) as num, starttime(表中的开始时间,以确保查询出来的时间差和开始时间对应) as dates from learnprocess(表名) union all select to_char('0') as num , (sysdate -level +1) as dates from dual 

connect by level<=15 order by dates

运行结果如下:

由于系统问题,照片传不上去,大概看一下手写视图

num | dates

0 | 2017/3/31

0 | 2017/4/1

6782 | 2017/4/2

... | ....

....... | .....

0 | 2017/4/14

(15天的日期对应的每一天的值,注意:这里的每条数据都是唯一的,也就是说一天只有一个开始时间和结束时间,如果一天中有多条开始时间和结束时间需要重新考虑)

                                             
1 0
原创粉丝点击