mysql日期的加减
DATE_ADD和DATE_SUB
语法为:DATE_ADD(date,interval expr type)、DATE_SUB(date,interval expr type)
其中常用的type的类型有:second、minute、hour、day、month、year等
DATE_ADD是对日期的增加,如果天数为负数时,则表示对日期减少,
DATE_SUB是对日期的减少,如果天数为负数时,则表示对日期增加
详细说明请查看官方文档
https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html
可灵活使用
例如:
-- 获取当前日期 2020-04-07
SELECT CURDATE();
-- 获取当前时间 15:24:01
SELECT CURTIME();
-- 获取当前日期加时间 2020-04-07 23:10:30
SELECT NOW();
-- 获取明天的日期 2020-04-08 获取日期时间格式将CURDATE()替换成NOW()即可
SELECT DATE_ADD(CURDATE(), INTERVAL 1 DAY);
-- 或者 其他获取月、年方法同样就不重复写了
SELECT DATE_SUB(CURDATE(), INTERVAL -1 DAY);
# 获取下个月、明年将DAY替换成对应MONTH、YEAR即可
SELECT DATE_ADD(CURDATE(), INTERVAL 1 MONTH);
-- 获取明年的日期 2021-04-07
SELECT DATE_ADD(CURDATE(), INTERVAL 1 YEAR);
-- 获取减去一天2小时
SELECT DATE_ADD('2022-02-04 20:00:00', INTERVAL '-1 2' DAY_HOUR);
# -> '2022-02-03 18:00:00'
# 获取减去一天1小时1分钟1秒
SELECT DATE_SUB('2025-01-01 00:00:00', INTERVAL '1 1:1:1' DAY_SECOND);
# -> '2024-12-30 22:58:59'