|
如何在Oracle中實現時間相加處理?
今天由于項目的需要,我負責編寫Oracle中的存儲過程。以前從來沒有接觸過,這次是個很好的學習機會,好好把握!
但是,在使用過程中,遇到一個問題,不知道該如何實現時間相加功能,因為系統中需要用來時間相加功能。通過網絡找資料,但是最終一無所獲。于是,決定自己寫一個!希望可以給朋友有所幫助!
create or replace function Add_Times
-
(d1 in date,NewTime in date) return date
is
hh number;
mm number;
ss number;
hours number;
dResult date;
begin
-- 下面依次取出時、分、秒
select to_number(to_char(NewTime,?HH24?)) into hh from dual;
select to_number(to_char(NewTime,?MI?)) into mm from dual;
select to_number(to_char(NewTime,?SS?)) into ss from dual;
-- 換算出NewTime中小時總和
hours := (hh + (mm / 60) + (ss / 3600))/ 24;
-- 得出時間相加后的結果
select d1 + hours into dResult from dual; return(dResult); end Add_Times;
-- 測試用例
-- select Add_Times(sysdate,to_date
(?2004-12-06 03:23:00?,?YYYY-MM-DD HH24:MI:SS?))
from dual 本文出自:億恩科技【www.artduck.net】
服務器租用/服務器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質保障!--億恩科技[ENKJ.COM]
|