如何在MySQL中对日期和时间进行加减操作
参考资料
MySQL官方网站 产品文档 日期和时间函数DATE_ADD和DATE_SUB
这两个函数是一对,一个是加法,一个是减法。它们的作用是对指定的日期加上或者减去一段时间。具体的使用方法参考下面的示例。示例中第一条我们将当前时间加上一个月,第二条将当前时间减去一个月。
SELECT DATE_ADD(now(), INTERVAL 1 MONTH);
SELECT DATE_SUB(now(), INTERVAL 1 MONTH);
ADDDATE和SUBDATE
这两个函数也是一对,一个是加法,一个是减法。它们的使用方法跟DATE_ADD和DATE_SUB是一样的。具体的使用方法参考下面的示例。示例中第一条我们将当前时间加上一个月,第二条将当前时间减去一个月。
SELECT ADDDATE(now(), INTERVAL 1 MONTH);
SELECT SUBDATE(now(), INTERVAL 1 MONTH);
更多用法
我们在示例中只使用了月作为参数,然而,时、分、秒、周、日、年也都是可以作为参数的,并且还可以支持分和秒、时和分和秒和其他的更多组合。具体可以参考下面的列表。
MICROSECOND
SECOND
MINUTE
HOUR
DAY
WEEK
MONTH
QUARTER
YEAR
SECOND_MICROSECOND 'SECONDS.MICROSECONDS'
MINUTE_MICROSECOND 'MINUTES:SECONDS.MICROSECONDS'
MINUTE_SECOND 'MINUTES:SECONDS'
HOUR_MICROSECOND 'HOURS:MINUTES:SECONDS.MICROSECONDS'
HOUR_SECOND 'HOURS:MINUTES:SECONDS'
HOUR_MINUTE 'HOURS:MINUTES'
DAY_MICROSECOND 'DAYS HOURS:MINUTES:SECONDS.MICROSECONDS'
DAY_SECOND 'DAYS HOURS:MINUTES:SECONDS'
DAY_MINUTE 'DAYS HOURS:MINUTES'
DAY_HOUR 'DAYS HOURS'
YEAR_MONTH 'YEARS-MONTHS'
其他信息
其实减法也可以使用DATE_ADD,我们只需要将参数写成负数即可。此外MariaDB作为MySQL的一个分支,它们的SQL语法也是基本一致的,所以在MariaDB上也有上述的四个函数,并且使用方法是完全一样的。