比如有两个字段a_time,b_time,都是date类型,我用什么函数可以计算出来他们的差值,比如两个时间相差几小时几分几秒等,谢谢...

解决方案 »

  1.   

    SELECT EXTRACT(day FROM S)
    FROM(
    SELECT (TO_DATE('&endTm','YYYYMMDDHH24MISS') - TO_DATE('&bgTm','YYYYMMDDHH24MISS')) day to second AS S from dual
    );
      

  2.   

    笨办法:SELECT TRUNC(s/24/60/60)||'天'||TRUNC((MOD(s,24*60*60))/60/60)||'小时'||TRIM(TO_CHAR(TRUNC((MOD(s,60*60))/60),'00')) ||'分'||TRIM(TO_CHAR(MOD(s,60),'00')) ||'秒' AS tt
    FROM (
    SELECT abs(a_time - b_time) * 3600 * 24 AS s FROM DUAL
    );
      

  3.   

    已连接到 Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 SQL> with r as (select sysdate-TO_DATE('2005-09-15 12:00:00','YYYY-MM-DD HH24:MI:SS') days from dual ) select days,days*24*60*60 seconds from r;      DAYS    SECONDS
    ---------- ----------
    160.405520   13859037