日期和時間類函數

在Oracle 11g中,系統提供了許多用於處理日期和時間的函數,通過這些函數可以實現計算需要的特定日期和時間,常用的日期和時間函數如表7.3所示。
表7.3常用日期時間類函數
日期和時間類函數
日期類型的默認格式是“日-月-年”即“DD-MON-YY”,其中“DD”表示兩位數字的“日”,MON表示3位數字的“月份”。YY表示兩位數字的“年份”,例如,“01-10月-11”表示2011年10月1日。下面看幾個常用函數的具體應用。

1.SYSDATE()函數
如果想要系統當前的日期,可以使用SYSDATE()函數,代碼如下。

selectsysdateas系統日期from dual;

通過SQL Developer輸入,查詢結果如圖7.14所示。
日期和時間類函數
圖7.14 獲得系統當前的日期

2.ADD_MONTHS(d,i)函數
該函數返回日期d加上i個月之後的結果。其中,i爲任意整數。

實例10 使用ADD_MONTHS()函數計算日期值

使用ADD_MONTHS()函數計算三個月之後的日期和三個月之前的日期,代碼如下:

01  selectsysdate當前日期,
02  ADD_MONTHS(sysdate,3) 三個月之後的日期,
03  ADD_MONTHS(sysdate,-3) 三個月之後的日期
04  from dual; 

通過SQL Developer輸入,查詢結果如圖7.15所示。
日期和時間類函數
圖7.15 使用ADD_MONTHS()函數計算日期值

通過圖7.15可知,當前日期爲“2017年5月13日”,那麼三個月之前的日期就是“2017年8月13日”。如果ADD_MONTHS()函數的第二個參數爲負數,則表明計算的是當前日期之前的日期值。
常見錯誤:使用“日期 + 數字”的形式來計算之前或之後的日期。
如果要計算三個月之後的日期,使用“sysdate + 90”也是表示三個月之後的日期,爲什麼要使用ADD_MONTHS()函數來計算日期值呢?
這是因爲在日期中存在閏年的情況,如果使用日期加減數字的方式則無法進行準確的日期操作。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章