MySQL中DATE_ADD()函数用法详解

蓝鲸
蓝鲸
发布时间:2026-10-15 | 2人浏览过
原创

DATE_ADD()是MySQL中用于日期计算的常用函数,可向指定日期添加时间间隔。本文解析其语法结构,并提供单单位与多单位叠加的时间增减实操案例。

DATE_ADD()函数语法说明

在MySQL查询中,DATE_ADD()常用于在不修改原表数据的前提下,对查询结果中的日期类型进行逻辑上的加减处理。其基本语法如下:

DATE_ADD(date, INTERVAL expr unit)
  • date:合法的日期表达式或时间字段,例如 '2020-05-21 14:43:52'。
  • INTERVAL:固定关键字,标志这是一个区间操作。
  • expr:数值型表达式,表示时间间隔的数量。正数表示增加,负数表示减少。
  • unit(即type):时间单位,定义expr的量级。常用单位包括:
  • SECOND:秒
  • MINUTE:分
  • HOUR:时
  • DAY:天
  • WEEK:周
  • MONTH:月
  • QUARTER:季度
  • YEAR:年

基础时间加减操作

以下示例展示了基于当前系统时间使用NOW()函数进行不同单位的增减操作:

第1步:增加小时

将当前时间增加1小时:

SELECT DATE_ADD(NOW(), INTERVAL 1 HOUR);

第2步:增加天数

将当前时间增加1天:

SELECT DATE_ADD(NOW(), INTERVAL 1 DAY);

第3步:减少小时

利用负数将当前时间减少72小时(即3天前):

SELECT DATE_ADD(NOW(), INTERVAL -72 HOUR);

第4步:高级组合用法

虽然可以通过分别指定单位来实现复杂加减,但MySQL也支持将多个时间单位合并为一个字符串表达式。例如“增加1天1小时1分1秒”可以写作 '1 1:1:1' 配合 DAY_SECOND 单位:

SELECT DATE_ADD(NOW(), INTERVAL '1 1:1:1' DAY_SECOND);

多重时间间隔叠加计算

当需要同时增加多个不同的时间单位(如同时加月和天)时,由于标准DATE_ADD()每次只能接受一个Unit参数,通常采用嵌套调用的方式实现。

实战场景:查找 score_expend 表中,创建时间(create_time) 加上 3个月4天 后,结果小于等于今天的数据。

操作逻辑是先内层增加3个月,外层在此基础上增加4天,最后用 DATE() 提取日期部分与今日比较:

SELECT * FROM score_expend 
WHERE DATE( 
   DATE_ADD( 
      DATE_ADD(create_time, INTERVAL 3 MONTH) , INTERVAL 4 DAY)  
   ) <= DATE(NOW());

此方法通过两次调用 DATE_ADD 实现了非单一单位的复合时间推算。

总结

以上就是MySQL中DATE_ADD()函数处理日期时间的详细内容。掌握单步加减与嵌套叠加技巧,可有效应对数据库中复杂的日期筛选需求。更多关于MySQL日期函数的资料请关注本站其它相关文章!

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表