sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo almacenar valores NULL en campos de fecha y hora en MySQL?

MySQL lo hace permitir NULL valores para datetime los campos. Lo acabo de probar:

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)

Estoy usando esta versión:

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

EDIT #1:Veo en su edición que el mensaje de error que está recibiendo en PHP indica que está pasando una cadena vacía (es decir, '' ), no null . Una cadena vacía es diferente a null y no es un datetime válido valor por lo que está recibiendo ese mensaje de error. Debe pasar la palabra clave sql especial null si eso es lo que quieres decir. Además, no ponga comillas alrededor de la palabra null . Ver mi insert declaración anterior para ver un ejemplo de cómo insertar null .

EDICIÓN #2:¿Estás usando PDO? Si es así, cuando vincule su parámetro nulo, asegúrese de usar el [PDO::PARAM_NULL][1] escriba al vincular un null . Consulte la respuesta a esta pregunta de desbordamiento de pila sobre cómo insertar correctamente null usando DOP.