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.