MySQL 如果使用间隔关键字和无效日期会发生什么

MySQL 如果使用间隔关键字和无效日期会发生什么

实际上,MySQL的行为取决于 allow_invalid_dates 模式。如果启用此模式,则MySQL将接受无效日期并按照与有效日期相同的方式执行日期运算。否则,如果此模式未启用,则不会接受无效日期并将产生NULL作为输出。

mysql> select '2017-02-30' + INTERVAL 7 day;
+-------------------------------+
| '2017-02-30' + INTERVAL 7 day |
+-------------------------------+
| NULL                          |
+-------------------------------+
1 row in set, 1 warning (0.00 sec)

现在在启用了 allow_invalid_date 模式后,MySQL接受无效日期并执行日期运算,如下所示−

mysql> set sql_mode = allow_invalid_dates;
Query OK, 0 rows affected (0.05 sec)

mysql> select '2017-02-30' + INTERVAL 7 day;
+-------------------------------+
| '2017-02-30' + INTERVAL 7 day |
+-------------------------------+
| 2017-03-09                    |
+-------------------------------+
1 row in set (0.00 sec)

mysql> select '2017-11-31' + INTERVAL 7 day;
+-------------------------------+
| '2017-11-31' + INTERVAL 7 day |
+-------------------------------+
| 2017-12-08                    |
+-------------------------------+
1 row in set (0.00 sec)

阅读更多:MySQL 教程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程