当使用带 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)
广告