Mysql
 sql >> Database >  >> RDS >> Mysql

Come memorizzare i valori NULL nei campi datetime in MySQL?

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.