oracle中日期可以直接相减
SQL> select to_date('2002-01-02 10:20:00','yyyy-mm-dd hh24:mi:ss') - to_date('2002-01-01 11:20:00','
yyyy-mm-dd hh24:mi:ss') from dual;TO_DATE('2002-01-0210:20:00','YYYY-MM-DDHH24:MI:SS')-TO_DATE('2002-01-0111:20:00','YYYY-MM-DDHH24:MI
----------------------------------------------------------------------------------------------------
                                                                                           .95833333
相差的天数
SQL> select trunc(to_date('2002-01-02 10:20:00','yyyy-mm-dd hh24:mi:ss'),'dd')
  2  -trunc(to_date('2002-01-01 11:20:00','yyyy-mm-dd hh24:mi:ss'),'dd') from dual;TRUNC(TO_DATE('2002-01-0210:20:00','YYYY-MM-DDHH24:MI:SS'),'DD')-TRUNC(TO_DATE('2002-01-0111:20:00',
----------------------------------------------------------------------------------------------------
                                                                                                   1
只算天数(精确到天)
同理把上面语句中的'dd'改成'mm','mi','ss'就可以得到月、分、秒等

解决方案 »

  1.   

    相差分钟数SQL> select (to_date('2002-01-02 10:20:00','yyyy-mm-dd hh24:mi:ss') - to_date('2002-01-01 11:20:00',
    'yyyy-mm-dd hh24:mi:ss'))*24*60 from dual;(TO_DATE('2002-01-0210:20:00','YYYY-MM-DDHH24:MI:SS')-TO_DATE('2002-01-0111:20:0
    --------------------------------------------------------------------------------
                                                                                1380