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;
相关推荐
若兰幽竹8 分钟前
【从零开始编写数据库系统:架构设计与实现】第5章:查询执行引擎与火山模型
数据库·架构·数据库内核·toydb
天空属于哈夫克342 分钟前
企业微信API常见的错误和解决方案
java·数据库·企业微信
东风破1371 小时前
DM8达梦数据库备份、恢复原理介绍
数据库·oracle·dm达梦数据库
鹏子训1 小时前
AI记忆新思路:用SQLite替代向量数据库,去EMBEDDINGS化,谷歌开源Google Always On Memory Agent
数据库·人工智能·sqlite·embedding
Frank_refuel1 小时前
终端环境下:Ubuntu 22.04.1 安装 MySQL 数据库
数据库·mysql·ubuntu
摇滚侠1 小时前
VMvare 虚拟机 Oracle19c 安装步骤,远程连接 Oracle19c,百度网盘安装包
java·oracle
虹科网络安全2 小时前
艾体宝产品|深度解读 Redis 8.4 新增功能:原子化 Slot 迁移(下)
数据库·redis·bootstrap
有味道的男人3 小时前
对接亚马逊平台接口,商品全量信息一键抓取
数据库
Web极客码4 小时前
2026年Linux VPS安全加固清单:SSH、防火墙与审计就绪配置
运维·服务器·数据库
逻辑驱动的ken5 小时前
Java高频面试考点18
java·开发语言·数据库·算法·面试·职场和发展·哈希算法