Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

MySQL ตอบสนองอย่างไรเมื่อเจอวันที่เกินช่วง (out-of-range date)

การตอบสนองของ MySQL ต่อวันที่เกินช่วงหรือไม่ถูกต้อง ขึ้นอยู่กับ SQL MODE หากเปิดใช้งานโหมด ALLOW_INVALID_DATES MySQL จะแปลงค่าที่เกินช่วงเป็นศูนย์ทั้งหมด ('0000:00:00 00:00:00') และเก็บไว้ในตารางโดยไม่แสดงข้อผิดพลาดหรือคำเตือน

ตัวอย่าง เปลี่ยน SQL MODE แล้วเพิ่มวันที่เกินช่วง:

mysql> SET sql_mode = 'ALLOW_INVALID_DATES';
Query OK, 0 rows affected (0.00 sec)

mysql> INSERT INTO order1234(productname, quantity, orderdate) VALUES('A', 500, '999-05-100');
Query OK, 1 row affected, 1 warning (0.13 sec)

mysql> SELECT * FROM order1234;
+-------------+----------+---------------+
| ProductName | Quantity | OrderDate     |
+-------------+----------+---------------+
| A           | 500      | 0000-00-00    |
+-------------+----------+---------------+

MySQL แปลงค่าที่เกินช่วงเป็นศูนย์ทั้งหมด