De hecho, esto se debe al modo SQL NO_ZERO_DATE
. Deberías haberlo visto cuando Anand Rockzz se vinculó al manual, pero ese enlace es solo la mitad de la explicación. A partir de MySQL 5.7.4, la configuración está obsoleta. En su primer ejemplo, está estableciendo una fecha; en el segundo, NO_ZERO_DATE
provoca el retorno de NULL porque no está especificando una fecha. A partir de 5.7.8, NO_ZERO_DATE
y NO_ZERO_IN_DATE
se han incluido con el valor predeterminado de sql_mode. Según el manual , parece como si la obsolescencia y la eliminación se hubieran revertido parcialmente (a partir de 5.7.8), por lo que es posible que pueda establecer esto explícitamente en su my.cnf
(o por sesión).
También debe consultar el manual sobre NO_ZERO_DATE directiva.