当使用带 CURDATE() 函数的时间单位 INTERVAL 时,MySQL 的行为如何?


正如我们所知,CURDATE() 仅返回日期单位,因此使用 CURDATE() 和 INTERVAL 的时间单位是模棱两可的。MySQL 始终使用 '00:00:00' 时间表示当前日期,因此当我们对 CURDATE() 使用 INTERVAL 时间单位时,这种时间算术会考虑此时间。以下示例将阐明这一点 -

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)

更新于: 2020 年 1 月 28 日

82 次浏览

开启你的 职业生涯

完成课程以获得认证

了解详情
广告