MySQL faz permitir
NULL
valores para datetime
Campos. Acabei de testar: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)
Estou usando esta versão:
mysql> select version();
+-----------+
| version() |
+-----------+
| 5.0.45 |
+-----------+
1 row in set (0.03 sec)
EDIT # 1:vejo na sua edição que a mensagem de erro que você está recebendo no PHP indica que você está passando uma string vazia (ou seja,
''
), não null
. Uma string vazia é diferente de null
e não é um datetime
válido value e é por isso que você está recebendo essa mensagem de erro. Você deve passar a palavra-chave sql especial null
se é isso que você quer dizer. Além disso, não coloque aspas na palavra null
. Veja meu insert
instrução acima para um exemplo de como inserir null
. EDIT # 2:Você está usando PDO? Em caso afirmativo, quando você vincular seu parâmetro nulo, certifique-se de usar o
[PDO::PARAM_NULL][1]
tipo ao vincular um null
. Veja a resposta para isso pergunta stackoverflow
sobre como inserir corretamente null
usando DOP.