首页 > 文章列表 > 当我们在 CURDATE() 函数中使用时间单位的 INTERVAL 时,MySQL 会如何表现?

当我们在 CURDATE() 函数中使用时间单位的 INTERVAL 时,MySQL 会如何表现?

128 2023-09-09

众所周知,CURDATE() 仅返回日期单位,因此将时间单位的 INTERVAL 与 CURDATE() 一起使用会产生歧义。 MySQL 总是用“00:00:00”时间表示当前日期,因此当我们将时间单位的 INTERVAL 与 CURDATE() 一起使用时,这种时间算术会考虑到这个时间。以下示例将阐明它 -

mysql> Select CURDATE() + INTERVAL 0 hour;
+-----------------------------+
| curdate() + Interval 0 hour |
+-----------------------------+
| 2017-10-28 00:00:00         |
+-----------------------------+
1 row in set (0.00 sec)

mysql> select CURDATE() + INTERVAL 1 hour;
+-----------------------------+
| curdate() + Interval 1 hour |
+-----------------------------+
| 2017-10-28 01:00:00         |
+-----------------------------+
1 row in set (0.00 sec)

mysql> Select CURDATE() + INTERVAL 2 hour;
+-----------------------------+
| CURDATE() + INTERVAL 2 hour |
+-----------------------------+
| 2017-10-28 02:00:00         |
+-----------------------------+
1 row in set (0.00 sec)