MySQL прави разреши NULL
стойности за datetime
полета. Току-що го тествах:
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)
Използвам тази версия:
mysql> select version();
+-----------+
| version() |
+-----------+
| 5.0.45 |
+-----------+
1 row in set (0.03 sec)
РЕДАКТИРАНЕ #1:Виждам във вашата редакция, че съобщението за грешка, което получавате в PHP, показва, че предавате празен низ (т.е. ''
), а не null
. Празен низ е различен от null
и не е валиден datetime
стойност, поради което получавате това съобщение за грешка. Трябва да подадете специалната ключова дума sql null
ако това имаш предвид. Също така, не поставяйте кавички около думата null
. Вижте моята insert
изявление по-горе за пример как да вмъкнете null
.
РЕДАКТИРАНЕ #2:Използвате ли PDO? Ако е така, когато свързвате своя нулев параметър, не забравяйте да използвате [PDO::PARAM_NULL][1]
въведете, когато обвързвате null
. Вижте отговора на това въпрос на stackoverflow
за това как правилно да вмъкнете null
използвайки PDO.