DATE_ADD
给日期增加时间间隔。
简介
DATE_ADD(date, INTERVAL value unit) 按指定单位向日期或时间增加间隔。天数运算与月份运算的日历语义不同,月末、闰年、DATETIME 与 TIMESTAMP 时区转换都需要单独验证;筛选字段时通常应计算边界常量,而不是给每一行字段套函数。
基础语法
SELECT DATE_ADD(created_at, INTERVAL 7 DAY) FROM orders;
示例
DATE_ADD 示例
示例为每个订单日期增加 7 天,结果可用于到期日计算;实际业务还应明确时间类型与时区。
示例数据表
表名:
orders| created_at |
|---|
| 2026-01-03 |
| 2026-01-08 |
| 2026-02-02 |
| 2026-02-15 |
运行结果
| date(created_at, '+7 day') |
|---|
| 2026-01-10 |
| 2026-01-15 |
| 2026-02-09 |
| 2026-02-22 |
常见问题
给月末日期增加一个月会得到哪一天?
月份天数不同时结果会按数据库规则调整;月末结算逻辑应使用 28、29、30、31 日样例验证。
DATE、DATETIME 和 TIMESTAMP 的行为完全一致吗?
不完全一致,尤其 TIMESTAMP 可能受会话时区影响;跨时区业务应明确存储与展示时区。
日期范围筛选适合在字段上使用 DATE_ADD 吗?
大表查询中通常更适合先计算边界常量,再直接比较字段,以保留索引使用机会。
标签
这篇内容是否清楚?
感谢反馈,我们会把它用于后续内容复核。