当在 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-01-28

82 次浏览

开启你的 职业生涯

完成课程,获得认证

开始学习
广告