Najwyraźniej wartość datetime nie jest prawidłową MySQL Datetime . Istnieje jednak praca nad modyfikacją trybów SQL serwera .
Z jakiegoś powodu na moim serwerze deweloperskim konfiguracje trybu domyślnego MySQL zostały całkowicie usunięte. Dlatego nie było żadnych ograniczeń dotyczących sposobu wstawiania daty i godziny.
mysql> select @@sql_mode;
+------------+
| @@sql_mode |
+------------+
| |
+------------+
1 row in set (0.00 sec)
Z drugiej strony na serwerze produkcyjnym istniało mnóstwo ograniczeń, które wskazywały serwerowi mysql, jakie formaty daty i godziny należy zaakceptować.
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 |
+-------------------------------------------------------------------------------------------------------------------------------------------+
Nie jest to bezpieczna metoda, ale zmieniłem tryby ograniczeń MySQL na no_engine_substitution
, i voila, wszystko działa jak czar (prawie). Aby to zadziałało, musisz zmienić tryby GLOBALNY i SESJI.
Standardowym trybem SQL jest 'NO_ENGINE_SUBSTITUTION', więc ustawimy ten tryb. Istnieje więcej trybów, które można dodać do trudnych:
SET GLOBAL sql_mode = '<mode>';
SET SESSION sql_mode = '<mode>';
Teraz tryb GLOBAL i SESSION powinny być ustawione na 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)