2010-05-05 132 views
0

我需要計算兩次之間需要多少時間。例如:PL/SQL時間段計算

(14:00:00 - 13:15:00)* 24 = 0.75

我需要這以後KW轉換成度,但是這不是問題的關鍵。

我無法找到如何在PL/SQL中執行此操作。

我的日期/時間字段像這樣的DB:

2010年1月23日21:00:00

我將不勝感激的任何建議。

史蒂夫

+0

哪個Oracle的版本您使用的是詳細的?問的原因是在9i中添加了內置功能,應該可以使這個更容易 – 2010-05-05 19:56:09

回答

1

如果您使用上述9i中這並得到預期的結果?

select extract(hour from numtodsinterval(to_date('14:00:00','HH24:MI:SS') - to_date('13:15:00','HH24:MI:SS'),'DAY')) 
||':'|| extract(minute from numtodsinterval(to_date('14:00:00','HH24:MI:SS') - to_date('13:15:00','HH24:MI:SS'),'DAY')) diff 
from dual 
/

DIFF 
------------------ 

0:45 

提取物是詳細here

和numtodsinterval是here

+0

非常感謝您的快速解決方案。現在我正在用我自己的數據來爭取自己的想法。我得到這個錯誤:「ORA-01858:一個非數字字符被發現的數字是預期的地方」 - dateTime字段看起來像這樣:8/12/2009 14:29:59 - 我不明白 – Steve 2010-05-05 20:24:22

+0

很高興我能幫助 - 而不是TO_DATE('14:00:00' , 'HH24:MI:SS') 怎麼樣使用 TO_DATE( '2009年8月12日14時29分59秒',「 MM/DD/YYYY HH24:MI:SS') 我不知道我是否已將月份(MM)和日期(DD)置於正確的位置,但您應該可以更換這些 – 2010-05-05 20:33:22

+0

再次感謝,我只是這樣做的,但奇怪的是,如果我將日期/時間硬編碼到它的工作函數中,那麼當我從表中得到該錯誤時,日期是從表中複製出來的,怎麼可能......無論如何,你已經幫了我很多了。再次感謝你。 – Steve 2010-05-05 20:45:00