比如20080501000000与20080430235959之间相差1秒,怎样在ORACLE中得到?
谢谢

解决方案 »

  1.   

    Oracle计算时间差表达式有两个日期数据START_DATE,END_DATE,欲得到这两个日期的时间差(以天,小时,分钟,秒,毫秒):
    天:
    ROUND(TO_NUMBER(END_DATE - START_DATE))
    小时:
    ROUND(TO_NUMBER(END_DATE - START_DATE) * 24)
    分钟:
    ROUND(TO_NUMBER(END_DATE - START_DATE) * 24 * 60)
    秒:
    ROUND(TO_NUMBER(END_DATE - START_DATE) * 24 * 60 * 60)
    毫秒:
    ROUND(TO_NUMBER(END_DATE - START_DATE) * 24 * 60 * 60 * 60)
     
      

  2.   

    select (To_date('2008-05-01 00:00:00' , 'yyyy-mm-dd hh24-mi-ss') - To_date('2008-04-30 23:59:59' , 'yyyy-mm-dd hh24-mi-ss')) * 24 * 60 * 60 相差秒数 FROM DUAL;/*
    相差秒数
    ----------
    11 row selected
    */