sql >> Databasteknik >  >> RDS >> Mysql

Hur lagrar man NULL-värden i datetime-fält i MySQL?

MySQL gör tillåt NULL värden för datetime fält. Jag testade det precis:

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)

Jag använder den här versionen:

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

EDIT #1:Jag ser i din redigering att felmeddelandet du får i PHP indikerar att du skickar en tom sträng (dvs. '' ), inte null . En tom sträng är annorlunda än null och är inte en giltig datetime värde vilket är anledningen till att du får det felmeddelandet. Du måste skicka det speciella sql-nyckelordet null om det är det du menar. Sätt inte heller några citattecken runt ordet null . Se min insert uttalande ovan för ett exempel på hur man infogar null .

EDIT #2:Använder du PDO? Om så är fallet, när du binder din nollparam, se till att använda [PDO::PARAM_NULL][1] skriv när du binder en null . Se svaret på detta stackoverflow-fråga om hur man korrekt infogar null använder SUB.



  1. Vikten av bra databasdesign (och 7 steg för att uppnå det)

  2. CONVERT() från datum/tid till strängexempel i SQL Server

  3. MySQL - Styr vilken rad som returneras av en grupp av

  4. Hur IF-utlåtandet fungerar i SQL Server