簡體   English   中英

需要使用Oracle SQL查找小時數之間的兩個時間戳之間的差異

[英]Need to find the difference between two timestamp in hours using oracle sql

SELECT MAX(
  CASE
    WHEN CLKTRANTYPE_ID = 1
    THEN MIN((TO_CHAR (CLKTRANPRO_TIME,'YYYY.MM.DD HH24:MI:SS')))
  END) AS MIN_TIME ,
  MAX(
  CASE
    WHEN CLKTRANTYPE_ID = 2
    THEN MAX((TO_CHAR(CLKTRANPRO_PROC_DT,'YYYY.MM.DD HH24:MI:SS')) )
  END) AS MAX_TIME 
FROM CLOCK_TRAN_PROCESSED
WHERE WRKS_ID =1652201
GROUP BY WRKS_ID,CLKTRANTYPE_ID;

上面是我的查詢,我需要以小時格式找到MAX_TIME和MIN_TIME之間的差異。 我嘗試使用提取和(-),但沒有任何幫助。 請幫助我找到小時格式的差異。

為什么將這些值轉換為字符串以得到差異?

select (extract(day from max(CLKTRANPRO_PROC_DT) - min(CLKTRANPRO_TIME)) * 24 +
        extract(hour from max(CLKTRANPRO_PROC_DT) - min(CLKTRANPRO_TIME))
       ) as diff_hours

時差

select 24 * (to_date('2017-07-07 22:00', 'YYYY-MM-DD hh24:mi') 
             - to_date('2017-07-07 19:30', 'YYYY-MM-DD hh24:mi')) diff_in_hours 
       from dual;

以上查詢的結果應為2.5小時

獲得差異的簡單方法

select Date1 - Date2 from your_Table;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM