sql >> Databáze >  >> RDS >> Mysql

Jak uložit hodnoty NULL do polí data a času v MySQL?

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.



  1. Načítání dat z databáze MySQL do rozevíracího seznamu html

  2. Jaké je výchozí pořadí seznamu vráceného z volání filtru Django?

  3. Při spouštění balíčku došlo k chybě

  4. Použití Jenkinse s Kubernetes AWS, část 2