sql >> Database >  >> RDS >> Mysql

Hoe NULL-waarden in datetime-velden in MySQL op te slaan?

MySQL doet sta NULL toe waarden voor datetime velden. Ik heb het net getest:

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)

Ik gebruik deze versie:

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

EDIT #1:Ik zie in je bewerking dat de foutmelding die je krijgt in PHP aangeeft dat je een lege string doorgeeft (d.w.z. '' ), niet null . Een lege tekenreeks is anders dan null en is geen geldige datetime waarde en daarom krijgt u die foutmelding. U moet het speciale sql-sleutelwoord null doorgeven als je dat bedoelt. Zet ook geen aanhalingstekens rond het woord null . Zie mijn insert bovenstaande instructie voor een voorbeeld van hoe u null invoegt .

EDIT #2:Gebruik je PDO? Als dat zo is, zorg er dan voor dat u de [PDO::PARAM_NULL][1] gebruikt wanneer u uw null-param bindt typ bij het binden van een null . Zie het antwoord hierop stackoverflow-vraag over het correct invoegen van null met behulp van BOB.



  1. String- en NULL-waarden samenvoegen in SQL Server

  2. Deelnemen aan tabellen van twee verschillende servers

  3. Waarom ongeldige conversie aangevraagd FOUTCODE:17132?

  4. Voorbeelden van JDBC-verklaringen - Invoegen, verwijderen, bijwerken, record selecteren