问题:
您想使用日期时间函数来提取或处理日期时间。
解
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截断为该月的第一天。