如何在Oracle中使用DATETIME函数?

问题:

您想使用日期时间函数来提取或处理日期时间。

ADD_MONTHS()

ADD_MONTHS(x,y)返回x加上y个月的结果。如果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(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(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被截断到一天的开始。如果提供可选的单位字符串,则x会被截断为该单位;例如,MM将x截断为该月的第一天。