MySQL robi zezwól na NULL
wartości dla datetime
pola. Właśnie to przetestowałem:
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)
Używam tej wersji:
mysql> select version();
+-----------+
| version() |
+-----------+
| 5.0.45 |
+-----------+
1 row in set (0.03 sec)
EDYCJA #1:Widzę w twojej edycji, że komunikat o błędzie, który otrzymujesz w PHP wskazuje, że przekazujesz pusty ciąg (tj. ''
), a nie null
. Pusty ciąg różni się od null
i nie jest prawidłową datetime
wartość, dlatego otrzymujesz ten komunikat o błędzie. Musisz przekazać specjalne słowo kluczowe sql null
Jeśli o to ci chodzi. Nie umieszczaj także cudzysłowów wokół słowa null
. Zobacz moją insert
powyżej, aby zobaczyć przykład, jak wstawić null
.
EDYCJA #2:Czy używasz PDO? Jeśli tak, podczas wiązania swojego null param upewnij się, że używasz [PDO::PARAM_NULL][1]
wpisz podczas wiązania null
. Zobacz odpowiedź na to pytanie o przepełnienie stosu
jak poprawnie wstawić null
za pomocą PDO.