1. 程式人生 > >Oracle日期加減

Oracle日期加減

Oracle中日期進行加減可以使用多種方式,以下介紹三種

一種是針對天的操作,適用於對日,時,分,秒的操作,

一種是對月的操作,適用於月,年的操作,

一種是使用INTERVAL函式,適用於年,月,日,時,分,秒的操作

1.直接加減數字

 select sysdate "當前時間",sysdate+1 "當前時間加一天" from dual ;          //加一天

靈活使用

SELECT
    SYSDATE "當前時間",
    SYSDATE + 1 "加一天",
    SYSDATE + (1 / 24) "加一小時",
    SYSDATE + (1 / 24 / 60) "加一分鐘",
    SYSDATE + (1 / 24 / 60 / 60) "加一秒鐘",
    SYSDATE - 1 "減一天"
FROM
    dual;

查詢結果如下:

2.通過ADD_MONTHS()函式

select sysdate "當前時間",ADD_MONTHS(sysdate, 1) "加一月" from dual ;     //加一個月

靈活使用

SELECT
    SYSDATE "當前時間",
    ADD_MONTHS (SYSDATE, 1) "加一月",
    ADD_MONTHS (SYSDATE, - 1) "減一月",
    ADD_MONTHS (SYSDATE, 1 * 12) "加一年",
    ADD_MONTHS (SYSDATE, - 1 * 12) "減一年"
FROM
    dual;

查詢結果如下:

3.使用INTERVAL函式

語法:INTERVAL '時間差數值'  { YEAR | MONTH | DAY | HOUR | MINUTE | SECODE} (精度數值)

得出的是相應型別的時間差,注意精度數值範圍是1-9,不寫預設值是2,精度不匹配時間差數值會報錯

例如:當前時間加1,11,111年

SELECT
    SYSDATE "當前時間",
    SYSDATE + INTERVAL '1' YEAR "加1年",                   //精度數值不寫時是預設兩位,此處可以寫精度為1-9
    SYSDATE + INTERVAL '11' YEAR "加11年",               //此處可以不寫,可以是1-9
    SYSDATE + INTERVAL '11' YEAR(2) "加11年",          // 可以寫2-9
    SYSDATE + INTERVAL '111' YEAR(3) "加111年",      //此處必須寫精度,精度值3-9
    SYSDATE + INTERVAL '111' YEAR (9) "加111年"     //精度值可以大於當前精度,不能小於當前數值精度,不能超過9
FROM
    dual;

 

查詢結果:

靈活運用

SELECT
    SYSDATE "當前時間",
    SYSDATE + INTERVAL '1' YEAR "加一年",
    SYSDATE + INTERVAL '-1' YEAR "減一年",
    SYSDATE + INTERVAL '1' MONTH "加一月",
    SYSDATE + INTERVAL '1' DAY "加一天",
    SYSDATE + INTERVAL '1' HOUR "加一小時",
    SYSDATE + INTERVAL '1' MINUTE "加一分鐘",
    SYSDATE + INTERVAL '1' SECOND "加一秒"
FROM
    dual;

結果如下:

 

精度的使用同上,當然oracle資料庫對於時間大小也是有限制的,年份範圍是 -4713 和 +9999 之間, 且不為 0