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())。
相关阅读
- 在MySQL 中使用NOLOCK有必要吗?|原理与替代方案
- MySql 中不存在就插入存在则更新语句
- MySQL 创建用户命令带密码和加密规则
- Not loading a JDBC driver as driverClassName property is null