อันที่จริง พฤติกรรมของ 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)