Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

MySQL xử lý ngày ngoài phạm vi (out-of-range) như thế nào?

Phản ứng của MySQL khi gặp ngày ngoài phạm vi hoặc không hợp lệ phụ thuộc vào SQL MODE.

Nếu bật mode ALLOW_INVALID_DATES, MySQL sẽ chuyển giá trị ngoài phạm vi thành toàn số 0 ('0000-00-00 00:00:00') và lưu vào bảng không báo lỗi cũng không cảnh báo.

Ví dụ

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    |
+-------------+----------+---------------+

Giá trị ngày '999-05-100' hoàn toàn vô nghĩa đã bị chuyển thành '0000-00-00'.