MySQL dělá povolit NULL
hodnoty pro datetime
pole. Právě jsem to testoval:
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)
Používám tuto verzi:
mysql> select version();
+-----------+
| version() |
+-----------+
| 5.0.45 |
+-----------+
1 row in set (0.03 sec)
ÚPRAVA #1:Ve vaší úpravě vidím, že chybová zpráva, kterou dostáváte v PHP, naznačuje, že předáváte prázdný řetězec (tj. ''
), nikoli null
. Prázdný řetězec se liší od null
a není platný datetime
hodnota, což je důvod, proč se vám zobrazuje tato chybová zpráva. Musíte předat speciální sql klíčové slovo null
jestli je to to, co myslíš. Také neuvádějte žádné uvozovky kolem slova null
. Viz můj insert
výše uvedený příklad, jak vložit null
.
EDIT #2:Používáte PDO? Pokud ano, při navázání null parametru nezapomeňte použít [PDO::PARAM_NULL][1]
zadejte při vázání null
. Podívejte se na odpověď na toto otázka stackoverflow
jak správně vložit null
pomocí PDO.