Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie speichert man NULL-Werte in Datetime-Feldern in MySQL?

MySQL macht es NULL zulassen Werte für datetime Felder. Ich habe es gerade getestet:

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)

Ich verwende diese Version:

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

BEARBEITUNG #1:Ich sehe in Ihrer Bearbeitung, dass die Fehlermeldung, die Sie in PHP erhalten, darauf hinweist, dass Sie eine leere Zeichenfolge übergeben (z. B. '' ), nicht null . Ein leerer String unterscheidet sich von null und ist keine gültige datetime Wert, weshalb Sie diese Fehlermeldung erhalten. Sie müssen das spezielle SQL-Schlüsselwort null übergeben wenn du das meinst. Setzen Sie außerdem keine Anführungszeichen um das Wort null . Siehe meine insert Anweisung oben für ein Beispiel zum Einfügen von null .

EDIT #2:Verwenden Sie PDO? Stellen Sie in diesem Fall beim Binden Ihres Nullparameters sicher, dass Sie [PDO::PARAM_NULL][1] verwenden Typ beim Binden eines null . Siehe die Antwort darauf Stackoverflow-Frage wie man null richtig einfügt mit PDO.