MySQL INTERVAL 时间间隔表达式
时间间隔表达式表示一个时间的间隔,通常用于时间的计算;语法如下:
INTERVAL expr unit
INTERVAL
是一个关键字;expr
表示数量,unit
表示单位;INTERVAL
关键字和单位都不区分大小写;
时间间隔表达式常用单位
unit(单位) | 描述 | 示例 | 示例描述 |
---|---|---|---|
MICROSECOND | 微秒 | ||
SECOND | 秒 | INTERVAL 5 SECOND | 5秒 |
MINUTE | 分钟 | INTERVAL 30 MINUTE | 30分钟 |
HOUR | 小时 | INTERVAL 1 HOUR | 1小时 |
DAY | 天 | INTERVAL 100 DAY | 100天 |
WEEK | 周 | INTERVAL 1 WEEK | 1周 |
MONTH | 月 | INTERVAL 1 MONTH | 1个月 |
QUARTER | 季度 | INTERVAL 1 QUARTER | 1个季度 |
YEAR | 年 | INTERVAL 3 YEAR | 3年 |
时间间隔表达式的应用
表达式可以与DATE
、DATETIME
、TIMESTAMP
值使用 +
、-
运算符;
当使用+
运算符时,表达式可以在左,也可以在右;当使用-
运算符时,表达式只能在右;
获得当前时间5天后的时间值:
SELECT NOW() + INTERVAL 5 DAY;
+------------------------+
| NOW() + INTERVAL 5 DAY |
+------------------------+
| 2021-06-04 16:01:11 |
+------------------------+
1 row in set (0.00 sec)
获得日期2021-05-30,100天前的时间:
SELECT '2021-05-30' - INTERVAL 100 DAY;
+---------------------------------+
| '2021-05-30' - INTERVAL 100 DAY |
+---------------------------------+
| 2021-02-19 |
+---------------------------------+
1 row in set (0.00 sec)
也常用于某些函数
例如ADDDATE()
函数:
SELECT ADDDATE('2021-05-30',INTERVAL 1 DAY);
+--------------------------------------+
| ADDDATE('2021-05-30',INTERVAL 1 DAY) |
+--------------------------------------+
| 2021-05-31 |
+--------------------------------------+
1 row in set (0.00 sec)