Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment stocker les valeurs NULL dans les champs datetime dans MySQL ?

MySQL fait autoriser NULL valeurs pour datetime des champs. Je viens de tester :

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)

J'utilise cette version :

mysql> select version();
+-----------+
| version() |
+-----------+
| 5.0.45    | 
+-----------+
1 row in set (0.03 sec)

EDIT #1 :Je vois dans votre édition que le message d'erreur que vous obtenez en PHP indique que vous passez une chaîne vide (c'est-à-dire '' ), et non null . Une chaîne vide est différente de null et n'est pas un datetime valide valeur qui est la raison pour laquelle vous obtenez ce message d'erreur. Vous devez passer le mot-clé sql spécial null si c'est ce que tu veux dire. Aussi, ne mettez pas de guillemets autour du mot null . Voir mon insert ci-dessus pour un exemple d'insertion de null .

EDIT #2 :utilisez-vous PDO ? Si c'est le cas, lorsque vous liez votre paramètre nul, assurez-vous d'utiliser le [PDO::PARAM_NULL][1] type lors de la liaison d'un null . Voir la réponse à cette question de débordement de pile sur la façon d'insérer correctement null en utilisant PDO.