如果我使用具有無效日期的 INTERVAL 關鍵字,MySQL 會如何表現?
實際上,MySQL 的行為取決於 allow_invalid_dates 模式。如果此模式啟用,則 MySQL 將接受無效日期並且會執行日期演算法,就像對有效日期執行演算法一樣。否則,如果此模式未啟用,則 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)
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP