Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como armazenar valores NULL em campos de data e hora no MySQL?


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.