2015-10-14 77 views
0

我的下一個念頭:獲取的時間差異甲骨文

SELECT TO_CHAR('14:00:00','HH24:MI:SS') - MIN(TO_CHAR(DATETIME,'HH24:MI:SS')) AS MINFECHA 
    FROM ARCHIVO2 
    WHERE DIA='LUNES'; 

我想要得到的2場之間的差異應該是這樣的

00:46:00 

任何意見將不勝感激。

+0

您已經刪除了大量重要日期數據,如日/月/年。如果您只使用小時/分鐘/秒,則無法區分36小時和12小時。 –

+1

[計算Oracle SQL中2個日期/時間之間的差異]的可能重複(http://stackoverflow.com/questions/1096853/calculate-difference-between-2-date-times-in-oracle-sql) –

+0

事實上例如,員工通常在14:00:00開始工作,但如果員工在14:02:00工作遲到,我希望能夠制定時間差異,在這種情況下,它將是00:02: 00(2分鐘後) –

回答

1

你不能在字符串中加/減日期和時間。爲了完成你需要的字符串轉換爲DATE值,進行必要的計算,然後將結果轉換回一個字符串,你想做什麼:

WITH DATE_DATA AS 
    (SELECT DIA, 
      DATETIME, 
      TO_DATE(TO_CHAR(DATETIME, 'DD-MON-YYYY') || ' ' || '14:00:00', 'DD-MON-YYYY HH24:MI:SS') AS BASE_TIME 
    FROM ARCHIVO2) 
SELECT DIA, 
     DATETIME, 
     BASE_TIME, 
     (DATETIME - BASE_TIME) * 1440 AS MINUTES_LATE 
    FROM DATE_DATA; 

SQLFiddle here

最佳的運氣。