我該如何編寫一個表達式,以日期,小時,分鐘,秒等方式給出兩個日期之間的差異?默認情況下,在oracle中減去兩個日期將返回天數作爲分數。Oracle Date Subtraction
2
A
回答
4
小數點是提供的兩個日期之間的天數差。你可以做一些小算術,將其轉換成日,時,分,秒等。
編輯:我明白你在找什麼。我敢肯定有一個更簡單的方法,但我想可能正是如此完成它:
select trunc(5.3574585) days,
trunc(mod((5.3574585) * 24, 24)) hours,
trunc(mod((5.3574585) * 24 * 60, 60)) minutes,
trunc(mod((5.3574585) * 24 * 60 * 60, 60)) seconds
from dual;
...其中5.3574585是減法返回的天數...
注:此ISN沒有經過真正的測試,它不在我頭頂。
6
用途:
SELECT TO_CHAR(date1,'MMDDYYYY:HH24:MI:SS') date1,
TO_CHAR(date2,'MMDDYYYY:HH24:MI:SS') date2,
TRUNC(86400*(date2-date1)) - 60*(TRUNC((86400*(date2-date1))/60)) seconds,
TRUNC((86400*(date2-date1))/60) - 60*(TRUNC(((86400*(date2-date1))/60)/60)) minutes,
TRUNC(((86400*(date2-date1))/60)/60) - 24*(TRUNC((((86400*(date2-date1))/60)/60)/24)) hours,
TRUNC((((86400*(date2-date1))/60)/60)/24) days,
TRUNC(((((86400*(date2-date1))/60)/60)/24)/7) weeks
FROM TABLE
3
你可以將日期轉換爲時間戳和使用本機的功能,以獲得單個組件出...
SELECT EXTRACT(DAY FROM (end_timestamp - start_timestamp)) days
, EXTRACT(HOUR FROM (end_timestamp - start_timestamp)) hours
, EXTRACT(MINUTE FROM (end_timestamp - start_timestamp)) minutes
, EXTRACT(SECOND FROM (end_timestamp - start_timestamp)) seconds
FROM (SELECT TO_TIMESTAMP(TO_CHAR(start_date, 'DD/MM/YYYY HH24:MI:SS')
, 'DD/MM/YYYY HH24:MI:SS') start_timestamp
, TO_TIMESTAMP(TO_CHAR(end_date, 'DD/MM/YYYY HH24:MI:SS')
, 'DD/MM/YYYY HH24:MI:SS') end_timestamp
FROM (SELECT TO_DATE('01/10/2009 14:25:01'
, 'DD/MM/YYYY HH24:MI:SS') start_date
, TO_DATE('03/10/2009 23:09:15'
, 'DD/MM/YYYY HH24:MI:SS') end_date
FROM dual
)
)
3
爲什麼不只是轉換爲時間戳,並隱式使用間隔日到秒數據類型?
select to_timestamp(sysdate+1.1234) - to_timestamp(sysdate) diff
from dual
/
DIFF
-----------
1 2:57:42.0
相關問題
- 1. Groovy:Timeduration-Subtraction
- 2. 「set subtraction」
- 3. MAX(DATE) - SQL ORACLE
- 4. SQL ORACLE(DATE)
- 5. Java Oracle date
- 6. Oracle Date Comparsion
- 7. SQL Timekeeping Subtraction
- 8. hadoop pig bag subtraction
- 9. Python while loop subtraction
- 10. Numpy Array Subtraction
- 11. Oracle date「Between」查詢
- 12. Groovy:Timeduration-Subtraction從字符串
- 13. oracle group by date with specific time
- 14. Spring Data Repository + JPA + Date + Oracle
- 15. Python Making Anagrams:Temp Anagram length subtraction method
- 16. Substr date date
- 17. Oracle Date to_char返回不同的結果
- 18. 在Oracle SQL中從DATE解析年份
- 19. 用DATE和VARCHAR2重載oracle過程
- 20. 插入時間到Oracle SQL,DATE域
- 21. 使用JDBC從Oracle讀取DATE字段
- 22. Oracle DATE和TIMESTAMP之間的區別
- 23. 通過JOOQ比較Oracle DATE列與java.sql.timestamp
- 24. 格式1800 date in SQL Server&Oracle
- 25. .net中的Oracle函數to_char(date,「IW」)
- 26. 替代Oracle上的名爲「DATE」的列
- 27. oracle sql date不遲於今天
- 28. jquery datepicker date date
- 29. Javascript:string date date
- 30. Mysql Date Solar Date
我選擇了這個答案,因爲它很短,很容易閱讀。讚揚所有答案 - 他們都工作!謝謝大家 – Jeff 2009-10-02 16:20:12
請注意這些數字是浮點數,所以如果您嘗試對結果運行FLOOR函數,您可能會遇到錯誤(10:30:40 - 10:14:40應該恰好爲16分鐘,但日期爲.011(1次重複)。 – 2012-06-07 15:25:08