Rõ ràng, giá trị datetime không phải là MySQL Datetime hợp lệ . Nhưng có một công việc xung quanh việc sửa đổi Chế độ SQL máy chủ .
Vì một số lý do, trong máy chủ phát triển của tôi, cấu hình chế độ mặc định của MySQL đã bị loại bỏ hoàn toàn. Do đó, không có giới hạn nào về cách tôi có thể chèn ngày giờ.
mysql> select @@sql_mode;
+------------+
| @@sql_mode |
+------------+
| |
+------------+
1 row in set (0.00 sec)
Mặt khác, trên máy chủ sản xuất, có rất nhiều hạn chế cho máy chủ mysql biết loại định dạng datetime nào cần chấp nhận.
mysql> select @@sql_mode;
+-------------------------------------------------------------------------------------------------------------------------------------------+
| @@sql_mode |
+-------------------------------------------------------------------------------------------------------------------------------------------+
| ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
+-------------------------------------------------------------------------------------------------------------------------------------------+
Đây không phải là một phương pháp an toàn, nhưng tôi đã thay đổi chế độ hạn chế MySQL thành no_engine_substitution
, và thì đấy, mọi thứ hoạt động giống như một sự quyến rũ (gần như vậy). Bạn phải thay đổi chế độ TOÀN CẦU và SESSION để chế độ này hoạt động.
Chế độ SQL tiêu chuẩn là 'NO_ENGINE_SUBSTITUTION', vì vậy chúng tôi sẽ đặt chế độ đó. Có nhiều chế độ khác mà bạn có thể thêm khó khăn:
SET GLOBAL sql_mode = '<mode>';
SET SESSION sql_mode = '<mode>';
Bây giờ, chế độ GLOBAL và SESSION sẽ được đặt thành NO_ENGINE_SUBSTITUTION
mysql> SET SESSION sql_mode = 'NO_ENGINE_SUBSTITUTION';
mysql> SELECT @@SESSION.sql_mode;
+------------------------+
| @@SESSION.sql_mode |
+------------------------+
| NO_ENGINE_SUBSTITUTION |
+------------------------+
1 row in set (0.00 sec)
mysql> SET GLOBAL sql_mode = 'NO_ENGINE_SUBSTITUTION';
mysql> SELECT @@GLOBAL.sql_mode;
+------------------------+
| @@GLOBAL.sql_mode |
+------------------------+
| NO_ENGINE_SUBSTITUTION |
+------------------------+
1 row in set (0.00 sec)