sql >> Database teknologi >  >> RDS >> Mysql

Hvordan gemmer man NULL-værdier i datetime-felter i MySQL?

MySQL gør tillad NULL værdier for datetime felter. Jeg har lige testet det:

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)

Jeg bruger denne version:

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

EDIT #1:Jeg kan se i din redigering, at den fejlmeddelelse, du får i PHP, indikerer, at du sender en tom streng (dvs. '' ), ikke null . En tom streng er anderledes end null og er ikke en gyldig datetime værdi, hvorfor du får den fejlmeddelelse. Du skal videregive det specielle sql-søgeord null hvis det er det du mener. Sæt heller ikke nogen anførselstegn omkring ordet null . Se mit insert sætning ovenfor for et eksempel på, hvordan du indsætter null .

EDIT #2:Bruger du PDO? Hvis det er tilfældet, når du binder din null-param, skal du sørge for at bruge [PDO::PARAM_NULL][1] skriv, når du binder en null . Se svaret på dette stackoverflow-spørgsmål om, hvordan du korrekt indsætter null bruger PDO.



  1. Joomla SQL Injection sårbarhed

  2. Indsæt data fra en tabel i en anden i MySQL

  3. Er der nogen forskel mellem IS NULL og =NULL

  4. Indsaml ydeevnedata ved hjælp af SQLDiag Tool | SQL Server Performance Fejlfinding -6