MySQL lo fa consenti NULL
valori per datetime
campi. L'ho appena testato:
mysql> create table datetimetest (testcolumn datetime null default null);
Query OK, 0 rows affected (0.10 sec)
mysql> insert into datetimetest (testcolumn) values (null);
Query OK, 1 row affected (0.00 sec)
mysql> select * from datetimetest;
+------------+
| testcolumn |
+------------+
| NULL |
+------------+
1 row in set (0.00 sec)
Sto usando questa versione:
mysql> select version();
+-----------+
| version() |
+-----------+
| 5.0.45 |
+-----------+
1 row in set (0.03 sec)
EDIT #1:vedo nella tua modifica che il messaggio di errore che stai ricevendo in PHP indica che stai passando una stringa vuota (cioè ''
), non null
. Una stringa vuota è diversa da null
e non è un datetime
valido valore, motivo per cui stai ricevendo quel messaggio di errore. Devi passare la parola chiave sql speciale null
se è questo che intendi. Inoltre, non mettere virgolette intorno alla parola null
. Vedi il mio insert
istruzione sopra per un esempio di come inserire null
.
EDIT #2:stai usando PDO? In tal caso, quando colleghi il tuo parametro null, assicurati di utilizzare il [PDO::PARAM_NULL][1]
digitare quando si associa un null
. Consulta la risposta a questa domanda sull'overflow dello stack
su come inserire correttamente null
utilizzando DOP.