游乐游手机版
首页/数据库/文章详情

MySQL DATE_ADD函数日期加减操作详解

时间:2026-07-24 19:30
DATE_ADD()对日期时间加减运算,语法DATE_ADD(date,INTERVALvalueunit),支持DAY MONTH YEAR等,正增负减,也可用DATE_SUB()。示例:加10天、减10天、加2个月、加1年、加2小时,MySQL自动处理跨年等边界。

DATE_ADD() 是 MySQL 中非常实用的日期时间函数,专门用于对日期或时间进行加减运算。简单来说,它可以给日期“加几天”、“减几个月”,或者调整小时、分钟,灵活且高效。

MySQLDATE_ADD函数怎么用?日期加减操作详解

该函数能够根据用户指定的时间间隔(如天、月、小时),对给定的日期或时间值进行精确调整,轻松应对各种日期计算场景。

语法

DATE_ADD(date, INTERVAL value unit)
  • date:待操作的原始日期或时间值。
  • value:要添加或减去的数值。正数表示增加,负数表示减少。
  • unit:时间单位,例如 DAY、MONTH、YEAR、HOUR 等。

关键点

  1. INTERVAL 是 MySQL 的关键字,用于定义时间间隔。
  2. 单位和数值组合在一起,决定了如何调整 date 值。
  3. 若需做减法,可直接给 value 传入负数,或使用更直观的 DATE_SUB() 函数。

常见的单位(unit)

单位含义
SECOND
MINUTE分钟
HOUR小时
DAY
MONTH
YEAR
WEEK周(7天)
QUARTER季度(3个月)
MICROSECOND微秒

案例解释

1. 增加时间

SELECT DATE_ADD('2024-12-01', INTERVAL 10 DAY); -- 输出:2024-12-11

给 2024-12-01 增加 10 天,结果为 2024-12-11,简单直观。

2. 减少时间

若需减少时间,可直接传入负数,或使用 DATE_SUB() 更清晰易读:

SELECT DATE_ADD('2024-12-01', INTERVAL -10 DAY);
-- 或
SELECT DATE_SUB('2024-12-01', INTERVAL 10 DAY);
-- 输出:2024-11-21

两种方式结果一致,可根据习惯灵活选用。

3. 增加月份和年份

SELECT DATE_ADD('2024-12-01', INTERVAL 2 MONTH); -- 输出:2025-02-01
SELECT DATE_ADD('2024-12-01', INTERVAL 1 YEAR);  -- 输出:2025-12-01

加 2 个月自动跨年到 2025 年 2 月;加 1 年则直接到 2025 年同一天。MySQL 会自动处理边界情况,无需手动干预。

4. 增加具体时间

SELECT DATE_ADD('2024-12-01 10:30:00', INTERVAL 2 HOUR);
-- 输出:2024-12-01 12:30:00

对带时间戳的日期加 2 小时,结果变为中午 12:30,在业务逻辑处理中非常实用。

总结

DATE_ADD() 是 MySQL 中处理日期加减的利器,支持从天到微秒的多种时间单位,配合正负数即可灵活实现“加”或“减”操作。在时间计算、范围查询、报表生成等场景中,它几乎每天都会用到。掌握此函数,能大幅减少手动计算日期的麻烦,提升开发效率。

来源:https://www.jb51.net/database/367954q0f.htm
上一篇MySQL中IN与EXISTS用法对比零基础学习笔记 下一篇SQL Server数据库索引知识全面完整汇总(最新整理版)
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
自增主键值从何而来?深入理解原理,告别只会auto_increment
数据库 · 2026-07-25

自增主键值从何而来?深入理解原理,告别只会auto_increment

KingbaseES推荐使用serial、bigserial、显式sequence或identity列实现自增主键。serial创建integer并关联序列,bigserial对应bigint;显式sequence可自定义起始值等参数;identity有generatedbydefault(允许指定值)与always(禁止)两种模式。

Linux下瀚高数据库授权文件过期及替换解决方案
数据库 · 2026-07-25

Linux下瀚高数据库授权文件过期及替换解决方案

在银河麒麟系统下,瀚高数据库hgdb-4 5试用授权20天到期后需替换正式授权文件。正确操作:停止服务,备份旧文件,将授权文件复制到 opt highgo hgdb-4 5 etc lic 并命名为hgdb lic,设置权限600和属主highgo:highgo,再启动服务。禁止直接修改data目录下的license info文件。

Oracle BLOB实时同步的5大技术挑战与难点解析
数据库 · 2026-07-25

Oracle BLOB实时同步的5大技术挑战与难点解析

OracleBLOB实时同步面临分片组装、多列隔离、长事务跨窗口、事务回滚及大对象资源控制等技术挑战,必须在日志中精确还原完整字段值,才能保证源端与目标端数据完全一致,这对同步系统的稳健性提出了高要求。

MySQL禁用redo日志导致全备失败
数据库 · 2026-07-25

MySQL禁用redo日志导致全备失败

MySQL全量备份失败是由于数据定义语言操作触发排序索引构建,禁用重做日志导致XtraBackup无法获取一致性备份。测试验证表明,优化表语句即使无数据也会触发该问题。根本原因在于排序索引构建过程跳过了重做日志记录,破坏了备份的一致性。

Kafka架构图优化与改进的全面详细步骤与实践指南
数据库 · 2026-07-25

Kafka架构图优化与改进的全面详细步骤与实践指南

Kafka作为实时数据流处理的核心中间件,其底层架构虽已相当成熟,但在实际生产环境中,要充分发挥其性能潜力,仍需落实到具体的调优与架构改造上。核心目标可归纳为三点:如何承载更高的吞吐量、如何保障数据不丢失、以及故障发生时如何快速恢复。本文将从这几个关键方向出发,深入探讨如何真正榨干Kafka集群的性