DATE_ADD(date,INTERVAL expr unit), DATE_SUB(date,INTERVAL expr unit)
这些函数进行有关日期的算术运算。date 是一个 DATETIME 或者 DATE 类型的值,指明了起始时间。expr 表达式则是 date 要增加或者减去的时间间隔。expr 是一个字符串,可以以 '-' 开始来表示负时间区间。 unit 是一个关键词,指明了expr 的单位。
INTERVAL 关键字和 unit(单位)指示符不区分大小写。
下表列出了对于每种单位,expr 应有的形式。
unit 值 expr 应有的格式
MICROSECOND 微秒
SECOND 秒
MINUTE 分钟
HOUR 小时
DAY 天
WEEK 星期
MONTH 月
QUARTER 季度
YEAR 年
SECOND_MICROSECOND '秒.微秒'
MINUTE_MICROSECOND '分.微秒'
MINUTE_SECOND '分:秒'
HOUR_MICROSECOND '小时.微秒'
HOUR_SECOND '时:分:秒'
HOUR_MINUTE '时:分'
DAY_MICROSECOND '天.微秒'
DAY_SECOND '天 时:分:秒'
DAY_MINUTE '天 时:分'
DAY_HOUR '天 时'
YEAR_MONTH '年-月'
QUARTER 和 WEEK 自 MySQL 5.0.0 起受到支持。
mysql> SELECT DATE_ADD('1997-12-31 23:59:59',
-> INTERVAL '1:1' MINUTE_SECOND);
+---------------------------------------------------------+
| DATE_ADD('1997-12-31 23:59:59', INTERVAL... |
+---------------------------------------------------------+
| 1998-01-01 00:01:00 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
mysql> SELECT DATE_ADD('1999-01-01', INTERVAL 1 HOUR);
+---------------------------------------------------------+
| DATE_ADD('1999-01-01', INTERVAL 1 HOUR) |
+---------------------------------------------------------+
| 1999-01-01 01:00:00 |
+---------------------------------------------------------+
1 row in set (0.00 sec) |