文章摘要
这篇文章介绍了MySQL中如何使用`DATE_ADD`函数来调整日期和时间。`DATE_ADD`函数可以对当前日期、指定日期以及时间段(如天、月、年、小时、分钟、秒)进行增减操作。例如:
- 增加1天:`SELECT DATE_ADD(DATE('2021-05-20'), INTERVAL 1 DAY);`
结果:`2021-05-21`
- 减少1天:`SELECT DATE_ADD(DATE('2021-05-20'), INTERVAL -1 DAY);`
结果:`2021-05-19`
- 增加1个月:`SELECT DATE_ADD(DATE('2021-05-20'), INTERVAL 1 MONTH);`
结果:`2021-06-20`
- 减少1个月:`SELECT DATE_ADD(DATE('2021-05-20'), INTERVAL -1 MONTH);`
结果:`2021-04-20`
- 增加1年:`SELECT DATE_ADD(DATE('2021-05-20'), INTERVAL 1 YEAR);`
结果:`2022-05-20`
- 减少1年:`SELECT DATE_ADD(DATE('2021-05-20'), INTERVAL -1 YEAR);`
结果:`2020-05-20`
此外,`DATE_ADD`还可以用于调整时间,例如增加1小时10分钟10秒或指定时间后增加特定时间间隔。示例包括:
- `SELECT DATE_ADD(NOW(), INTERVAL '1:10:10' HOUR_SECOND);`
结果:`2021-05-20 15:59:32`
- `SELECT DATE_ADD('2019-04-17 2:00:00', INTERVAL '1:10:10' HOUR_SECOND);`
结果:`2021-04-17 03:10:10`
文章提醒用户注意时间范围的限制,以及如何处理跨月、跨年的情况。
#获取当前日期
SELECT CURRENT_DATE() AS newDate; #2021-05-20
#当前日期加1天(其他天数方法一样)
SELECT DATE_ADD(CURRENT_DATE(), INTERVAL 1 DAY) AS newDate; #2021-05-21
#当前日期减1天
SELECT DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY) AS newDate; #2021-05-19
#当前日期加1个月
SELECT DATE_ADD(CURRENT_DATE(), INTERVAL 1 MONTH) AS newDate; #2021-06-20
#当前日期减1个月
SELECT DATE_ADD(CURRENT_DATE(), INTERVAL -1 MONTH) AS newDate; #2021-04-20
#当前日期加1年
SELECT DATE_ADD(CURRENT_DATE(), INTERVAL 1 YEAR) AS newDate; #2022-05-20
#当前日期减1年
SELECT DATE_ADD(CURRENT_DATE(), INTERVAL -1 YEAR) AS newDate; #2020-05-20
SELECT CURRENT_DATE() AS newDate; #2021-05-20
#当前日期加1天(其他天数方法一样)
SELECT DATE_ADD(CURRENT_DATE(), INTERVAL 1 DAY) AS newDate; #2021-05-21
#当前日期减1天
SELECT DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY) AS newDate; #2021-05-19
#当前日期加1个月
SELECT DATE_ADD(CURRENT_DATE(), INTERVAL 1 MONTH) AS newDate; #2021-06-20
#当前日期减1个月
SELECT DATE_ADD(CURRENT_DATE(), INTERVAL -1 MONTH) AS newDate; #2021-04-20
#当前日期加1年
SELECT DATE_ADD(CURRENT_DATE(), INTERVAL 1 YEAR) AS newDate; #2022-05-20
#当前日期减1年
SELECT DATE_ADD(CURRENT_DATE(), INTERVAL -1 YEAR) AS newDate; #2020-05-20
#指定日期加1天(可将DAY换为MONTH,YEAR来实现加1个月,1年)
SELECT DATE_ADD(‘2021-05-20’, INTERVAL 1 DAY) AS newDate; #2021-05-21
#指定日期减1天(可将DAY换为MONTH,YEAR来实现减1个月,1年)
SELECT DATE_ADD(‘2021-05-20’, INTERVAL -1 DAY) AS newDate; #2021-05-19
#当前时间添加1小时10分钟10秒钟
SELECT DATE_ADD(NOW(), INTERVAL ‘1:10:10’ HOUR_SECOND) AS newTime; #2021-05-20 15:59:32
#指定时间添加1小时10分钟10秒钟
SELECT DATE_ADD(‘2019-04-17 2:00:00’, INTERVAL ‘1:10:10’ HOUR_SECOND) AS newTime; #2021-04-17 03:10:10
© 版权声明
文章版权归作者所有,未经允许请勿转载。