MySQL中DATE_ADD()函数用法详解
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日期函数的资料请关注本站其它相关文章!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









