2013-11-21 31 views
1

我想以sysatdate和utcdate之間的整數獲得diffenece在幾分鐘內。這不起作用:Oracle;兩個日期,在幾分鐘內的差異

select ROUND((sysdate-SYS_EXTRACT_UTC(SYSTIMESTAMP))*1440,0) from dual 

它給人的錯誤消息: ORA-00932:不一致的數據類型:預期數量得到INTERVAL DAY TO SECOND 腳本線21,語句行1列52

什麼做?非常感謝!

回答

1

試試這個。 YOu必須將systimestamp數據類型轉換爲日期類型,然後才能在兩個日期進行數學運算。也許有一個更優雅的解決方案,但這似乎工作。

SELECT ROUND ( ( SYSDATE 
       - TO_DATE (TO_CHAR (SYS_EXTRACT_UTC (SYSTIMESTAMP), 
            'YYYY-MON-DD HH24:MI:SS' 
            ), 
          'YYYY-MON-DD HH24:MI:SS' 
          ) 
       ) 
       * 1440, 
       0 
      ) 
    FROM DUAL 
+0

現在看起來非常好,謝謝! –

+2

可以簡化一點。 '(sysdate - cast(SYS_EXTRACT_UTC(SYSTIMESTAMP)as date))* 1440'。在這種情況下,實際上不需要進行*來回*轉換。 –

+0

更清潔的感覺。 – OldProgrammer

相關問題