Apparentemente, il valore datetime non è un MySQL Datetime . Ma c'è un modo per modificare le Modalità SQL del server .
Per qualche motivo, nel mio server di sviluppo, le configurazioni della modalità predefinita di MySQL sono state completamente rimosse. Pertanto non c'erano restrizioni su come potevo inserire la data e l'ora.
mysql> select @@sql_mode;
+------------+
| @@sql_mode |
+------------+
| |
+------------+
1 row in set (0.00 sec)
Sul server di produzione, d'altra parte, c'erano un sacco di restrizioni che dicevano al server mysql quali tipi di formati datetime accettare.
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 |
+-------------------------------------------------------------------------------------------------------------------------------------------+
Questo non è un metodo sicuro, ma ho modificato le modalità di restrizione di MySQL in no_engine_substitution
, e voilà, tutto funziona come un incantesimo (quasi). Devi cambiare le modalità GLOBALE e SESSIONE affinché funzioni.
La modalità SQL standard è "NO_ENGINE_SUBSTITUTION", quindi metteremo la modalità su quella. Ci sono più modalità che potresti aggiungere:
SET GLOBAL sql_mode = '<mode>';
SET SESSION sql_mode = '<mode>';
Ora le modalità GLOBAL e SESSION dovrebbero essere impostate su 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)