我遇到需要獲取兩列之間差異的情況。日期Oracle中的時間差計算
第1欄:01-OCT-13 10點27分15秒
第2欄:01-OCT-13 10時28分00秒
我需要得到與上述兩者之間的差異列。我嘗試使用' - '運算符,但輸出不是預期的方式。
我需要輸出如下:00-00-00 00:00:45
我遇到需要獲取兩列之間差異的情況。日期Oracle中的時間差計算
第1欄:01-OCT-13 10點27分15秒
第2欄:01-OCT-13 10時28分00秒
我需要得到與上述兩者之間的差異列。我嘗試使用' - '運算符,但輸出不是預期的方式。
我需要輸出如下:00-00-00 00:00:45
嘗試此查詢,但沒有進行測試
SELECT extract(DAY
FROM diff) days,
extract(hour
FROM diff) hours,
extract(MINUTE
FROM diff) minutes,
extract(SECOND
FROM diff) seconds,
extract(YEAR
FROM diff) years
FROM
(SELECT (CAST (to_date(t.column1, 'yyyy-mm-dd hh:mi:ss') AS TIMESTAMP) -CAST (to_date(t.column2, 'yyyy-mm-dd hh:mi:ss') AS TIMESTAMP)) diff
FROM tablename AS t)
但是,只有秒差異正確..!?如果日期以及時間和分鐘也有所不同,該怎麼辦? – user2037445
是的它的工作很好。我可以提取所有在一個單一的查詢? – user2037445
是的,它的工作非常感謝你。如果我想找到月份和年份的差異,我是否應該按照相同的程序 – user2037445
試試這個太,
WITH T(DATE1, DATE2) AS
(
SELECT TO_DATE('01-OCT-13 10:27:15', 'DD-MON-YY HH24:MI:SS'),TO_DATE('01-OCT-13 10:28:00', 'DD-MON-YY HH24:MI:SS') FROM DUAL
)
SELECT floor(date2 - date1)
|| ' DAYS '
|| MOD(FLOOR ((date2 - date1) * 24), 24)
|| ' HOURS '
|| MOD (FLOOR ((date2 - date1) * 24 * 60), 60)
|| ' MINUTES '
|| MOD (FLOOR ((date2 - date1) * 24 * 60 * 60), 60)
|| ' SECS ' time_difference
FROM T;
我沒有得到你。 :( – user2037445
另一種方法來提取幾天,幾小時,幾分鐘和幾秒B/W兩個日期 – Dba
你可以請使用以下查詢找到差異seconds
:
select 24*60*60*
(to_date('01-OCT-13 10:28:00', 'yyyy-mm-dd hh24:mi:ss')-
to_date('01-OCT-13 10:27:15', 'yyyy-mm-dd hh24:mi:ss')) diff_secs
from dual;
但我需要日期之間的差異以及包括日,月,年,小時,分鐘,秒 – user2037445
時間怎麼可能是'10:27:60'?那將是'10:28:00'(一分鐘60秒)。這些「DATE」列(在這種情況下尾部60是無效的)?或者它們是'時間戳'列(在這種情況下,尾部60可能意味着代表小數秒,而您只是錯過了整秒數)? –
哦對不起...我的錯誤.. :) – user2037445
列是類型DATE – user2037445