[Oracle] ADD_MONTHS()函数

ADD_MONTHS() 是 Oracle 中专门用于日期计算的函数,它可以在给定日期上增加或减少指定的月数

ADD_MONTHS()函数特别适合需要精确处理月份增减的业务场景

语法格式

sql 复制代码
ADD_MONTHS(date, number_of_months)

参数说明

date: 基准日期(DATE 类型)

number_of_months: 要添加的月数,可以是整数或小数(小数部分会被忽略)

正数:向未来计算

负数:向过去计算

示例

sql 复制代码
-- 当前日期加2个月
SELECT ADD_MONTHS(SYSDATE, 2) FROM dual;

-- 当前日期减3个月
SELECT ADD_MONTHS(SYSDATE, -3) FROM dual;

-- 月末处理
-- 如果基准日期是某月的最后一天,结果也会是该月的最后一天
SELECT ADD_MONTHS(TO_DATE('2025-01-31', 'YYYY-MM-DD'), 1) FROM dual;  -- 2025/2/28

-- 自动处理跨年份的月份计算
SELECT ADD_MONTHS(TO_DATE('2025-11-15', 'YYYY-MM-DD'), 3) FROM dual;  -- 2026/2/15

-- 保留日期部分
-- 结果会保留原始日期的时分秒部分
SELECT ADD_MONTHS(TO_DATE('2025-08-09 14:30:00', 'YYYY-MM-DD HH24:MI:SS'), 1) FROM dual;  -- 2025/9/9 下午 02:30:00

-- 与TRUNC()函数结合使用
-- 去年同月第一天
SELECT ADD_MONTHS(TRUNC(SYSDATE, 'MM'), -12) FROM dual;

提示Tips

① 月数(包含小数)会被截断取整(不四舍五入)

sql 复制代码
-- 等同于 ADD_MONTHS(SYSDATE, 1)
SELECT ADD_MONTHS(SYSDATE, 1.9) FROM dual;
相关推荐
add45a3 分钟前
Python类型提示(Type Hints)详解
jvm·数据库·python
曾阿伦13 分钟前
SQL 用法详解:从基础操作到进阶实战的全场景指南
数据库·sql
NCU_wander14 分钟前
操作系统/数据库和业务应用/中间件/硬件之间的关系
数据库·中间件
Navicat中国16 分钟前
如何从0到1完成函数设计 | Navicat 教程
数据库·函数·navicat
jnrjian19 分钟前
Oracle tablespace 对象迁移
数据库·oracle
chushiyunen20 分钟前
人工智能-function calling(函数调用)
数据库·ai编程
TDengine (老段)25 分钟前
TDengine IDMP 0-阅读指南
大数据·数据库·人工智能·时序数据库·tdengine·涛思数据
2501_9454248028 分钟前
机器学习与人工智能
jvm·数据库·python
Liu6288830 分钟前
Python单元测试(unittest)实战指南
jvm·数据库·python
赵孝正31 分钟前
Python分块计算(Chunk Processing)详解:解决大规模数据内存溢出的工程实践
数据库·人工智能·python