如何在Oracle中使用DATETIME函式?


問題

您想使用日期時間函式來提取或處理日期時間。

解決方案

ADD_MONTHS()

ADD_MONTHS(x, y) 返回將 y 個月新增到 x 的結果。如果 y 為負數,則從 x 中減去 y 個月。

示例

-- add 12 months SELECT ADD_MONTHS('01-JAN-2020', 12) FROM dual;

輸出

--
01/JAN/21

示例

-- subtract 12 months
SELECT ADD_MONTHS('01-JAN-2020', -12)
FROM dual;

輸出

--
01/JAN/21

我們可以向 ADD_MONTHS() 函式提供時間和日期。

示例

SELECT ADD_MONTHS(TO_DATE('01-JAN-2020 01:01:01','DD-MON-YYYY HH24:MI:SS'), 2) FROM dual;

輸出

--
01/MAR/20

LAST_DAY()

LAST_DAY(x) 返回 x 的月份部分的最後一天的日期。

示例

SELECT LAST_DAY('01-JAN-2020') FROM dual;

輸出

--
31/JAN/20

MONTHS_BETWEEN()

MONTHS_BETWEEN(x, y) 返回 x 和 y 之間的月份數。如果 x 在日曆中出現在 y 之前,則 MONTHS_BETWEEN() 返回的數字為負數。

示例

SELECT MONTHS_BETWEEN('28-JUN-2020', '01-JAN-2020') FROM dual;

輸出

--
5.87096774193548387096774193548387096774

在上面的示例中,較晚的日期 (28-JUN-2020) 放在前面,返回的結果為正數;如果我們調換日期順序,結果為負數。

示例

SELECT MONTHS_BETWEEN( '01-JAN-2020', '28-JUN-2020') FROM dual;

輸出

--
-5.87096774193548387096774193548387096774

NEXT_DAY()

NEXT_DAY(x, day) 返回 x 之後下一個指定日期的日期;您需要將 day 指定為文字字串。

示例

SELECT NEXT_DAY('01-JAN-2020', 'SATURDAY') FROM dual;

輸出

--
04/JAN/20

SYSDATE

SYSDATE 返回資料庫伺服器作業系統中設定的當前日期時間。以下示例獲取當前日期。

示例

SELECT SYSDATE FROM dual;

輸出

--
13/NOV/20

TRUNC()

TRUNC(x [, unit]) 截斷 x。預設情況下,x 被截斷到一天的開始。如果提供可選的 unit 字串,則 x 將被截斷到該單位;例如,MM 將 x 截斷到當月的第一天。

更新於:2020年12月5日

433 次瀏覽

啟動您的職業生涯

完成課程獲得認證

開始學習
廣告