oracle日期加減計算

2021-08-14 23:25:19 字數 1939 閱讀 9551

oracle資料庫中有多種對日期加減的計算方法,廢話不多說,開始。

1、直接加減。

(1)求當前時間及一天後:

select sysdate,sysdate + 1 from dual;
輸出為:

2018-1-24 14:05:19	2018-1-25 14:05:19
(2

)求當前時間及一小時後:

select sysdate,sysdate + 1/24 from dual;

輸出為:

2018-1-24 14:07:45	2018-1-24 15:07:45
求分鐘及秒只要做相應除法即可。

不過此種方法不能做月的加減,因為每月的天數不一樣。

2、用函式add_months。

(1)求當前時間及一年後:

select sysdate,add_months(sysdate,1*12) from dual;
輸出為:

2018-1-24 14:11:03	2019-1-24 14:11:03

(2)求當前時間及一月後:

select sysdate,add_months(sysdate,1) from dual;
輸出為:

2018-1-24 14:11:03	2018-2-24 14:11:03
同樣,此方法不能做天及更小的時間加減,因為每月天數不一樣的原因。

3、使用numtoyminterval(發音:num to y m interval)或numtodsinterval(發音:num to d s interval)函式。

(1)求當前時間及一年後:

select sysdate,sysdate + numtoyminterval(1,'year') from dual;
輸出為:

2018-1-24 14:32:34	2019-1-24 14:32:34
(2)求當前時間及一月後:

select sysdate,sysdate + numtoyminterval(1,'month') from dual;
輸出為:

2018-1-24 14:33:49	2018-2-24 14:33:49
(3)求當前時間及一天後:
select sysdate,sysdate + numtodsinterval(1,'day') from dual;
輸出為:
2018-1-24 14:34:52	2018-1-25 14:34:52
(4

)求當前時間及一小時

後:

select sysdate,sysdate + numtodsinterval(1,'hour') from dual;
輸出為:
2018-1-24 14:35:47	2018-1-24 15:35:47
(5

)求當前時間及一分鐘

後:

select sysdate,sysdate + numtodsinterval(1,'minute') from dual;
(6)求當前時間及一秒後:

select sysdate,sysdate + numtodsinterval(1,'second') from dual;

相比而言,第三種函式功能還是比較強大的,但是拼寫字母太多,用的比較少,畢竟前兩種已經夠用了。

oracle 日期加減計算

下一年 年加1 select sysdate,sysdate numtoyminterval 1,year from dual select sysdate,add months sysdate,12 from dual 上一年 年減1 select sysdate,sysdate numtoymi...

Oracle 日期加減

加法 select sysdate,add months sysdate,12 from dual 加1年 select sysdate,add months sysdate,1 from dual 加1月 select sysdate,to char sysdate 7,yyyy mm dd hh...

Oracle日期加減計算 方法彙總

無論是date還是timestamp都可以進行加減操作。可以對當前日期加年 月 日 時 分 秒,操作不同的時間型別,有三種方法 一 使用內建函式numtodsinterval增加小時,分鐘和秒 二 加乙個簡單的數來增加天 三 使用內建函式add months來增加年和月 方法一例 對當前日期增加乙個...