MySql 对指定日期函数添加1天或者小时分钟
DATE_ADD() 函数向日期添加指定的时间间隔。

DATE_ADD(date,INTERVAL expr type)

select date_add(NOW(), interval 1 day); 
select date_add(NOW(), interval 1 hour); 
select date_add(NOW(), interval 1 minute); 
select date_add(NOW(), interval 1 second); 
select date_add(NOW(), interval 1 microsecond); 
select date_add(NOW(), interval 1 week); 
select date_add(NOW(), interval 1 month); 
select date_add(NOW(), interval 1 quarter);  --季度
select date_add(NOW(), interval 1 year); 

难点儿在于这个单词:interval,例如我们添加的是1天12个小时10分钟20秒,那么得调用多次这个函数,比较好的一个解决思路是都换成最小单位秒。然后调用一次。其中这个数字1也支持负数,也就是减的意思 。

函数族与常用单位

DATE_ADD 是一族函数的核心,减法有对应的 DATE_SUB,加、减、跨单位一次说清。

  • 单位常用值:SECOND、MINUTE、HOUR、DAY、WEEK、MONTH、QUARTER、YEAR;
  • 时间间隔可以是负数:DATE_ADD(NOW(), INTERVAL -1 DAY) 等价于减一天;
  • 直接字段运算:NOW() + INTERVAL 1 DAY 语法更短,效果相同;
  • MONTH 跨月自动处理月末:1 月 31 日加 1 个月得 2 月 28/29 日,不是 3 月 3 日;
  • 典型场景:会员过期时间(NOW + INTERVAL 30 DAY)、统计区间(BETWEEN DATE_SUB(NOW(), INTERVAL 7 DAY) AND NOW())。

相关阅读

参考资料