oracle 月份加减一个月

一、 ADD_MONTHS函数:(推荐使用)

用于在日期上增加或减少指定的月份数。

• 语法:ADD_MONTHS(date, n),其中date是要操作的日期,n是要增加或减少的月份数。如果n为负数,则表示减少月份。

• 示例:

sql 复制代码
SELECT ADD_MONTHS(SYSDATE, 2) AS two_months_later, ADD_MONTHS(SYSDATE, -3) AS three_months_ago FROM DUAL;

• 这个函数只会改变月份部分,日期部分会根据结果月份的天数进行调整。例如,如果原始日期是 2024 年 8 月 16 日,使用ADD_MONTHS(SYSDATE, 1),结果将是 2024 年 9 月 16 日;如果原始日期是 2024 年 8 月 31 日,使用ADD_MONTHS(SYSDATE, 1),结果将是 2024 年 9 月 30 日,因为 9 月只有 30 天。
二、使用 INTERVAL 表达式:(不推荐使用)

INTERVAL表达式可以用于在日期上增加或减少一定的时间间隔。

• 语法:date + INTERVAL 'n' unit或date - INTERVAL 'n' unit,其中date是要操作的日期,n是时间间隔的数量,unit是时间单位,可以是 'YEAR'(年)、'MONTH'(月)、'DAY'(日)、'HOUR'(小时)、'MINUTE'(分钟)、'SECOND'(秒)等。

• 示例:

sql 复制代码
SELECT SYSDATE + INTERVAL '2' YEAR AS two_years_later, SYSDATE - INTERVAL '3' MONTH AS three_months_ago FROM DUAL;

• 使用INTERVAL表达式可以更加灵活地进行日期的加减操作,可以指定不同的时间单位和数量。
不推荐使用原因:
如下,2024-10-31减去6个月是2024-04-31,但是4月没有31日,就会报错ORA-01839:指定月份的日期无效。

sql 复制代码
select date'2024-10-31' - INTERVAL '6' MONTH from dual;
相关推荐
Chasing__Dreams7 小时前
Redis--基础知识点--32--redis底层存储结构
数据库·redis·缓存
不总是7 小时前
[2026最新] Windows 免安装版 MySQL 8 详细安装配置教程(ZIP 压缩包版)
数据库·windows·mysql
tedcloud1237 小时前
DBX部署教程:打造支持AI SQL助手的数据库管理环境
数据库·人工智能·sql
野生技术架构师7 小时前
我有个大胆的想法,用 PostgreSQL 代替 Redis
数据库·redis·postgresql
cfm_29147 小时前
Redis ZSet 有序集合详解
数据库·redis·缓存
瀚高PG实验室7 小时前
V4.5.6.1授予普通用户监控类系统表及视图的查询权限
数据库·瀚高数据库
BullSmall8 小时前
模板库与抽取实例:企业数据同步最佳实践
数据库
云策数链8 小时前
用友U8数据库核心表结构与业务关联解析(附常用查询SQL)
数据库·sql·erp·用友·云策数链
徒手猫8 小时前
MySQL 窗口函数完全指南
数据库·mysql
betazhou8 小时前
电科金仓数据库V9 MySQL兼容版本搭建一主一从体验
数据库·mysql·oracle·主从·高可用·kingbase·v9 mysql兼容版本