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

    xiaoxiao2021-04-13  36

    首先,如果你的时间类型都是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天的日期对应的每一天的值,注意:这里的每条数据都是唯一的,也就是说一天只有一个开始时间和结束时间,如果一天中有多条开始时间和结束时间需要重新考虑)

    转载请注明原文地址: https://ju.6miu.com/read-669161.html

    最新回复(0)