如何在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 次浏览

启动您的职业生涯

完成课程获得认证

开始学习
广告