Isso se deve ao modo SQL
NO_ZERO_DATE
. Você deveria ter visto isso quando Anand Rockzz linkou para o manual, mas esse link é apenas metade da explicação. A partir do MySQL 5.7.4, a configuração está obsoleta. Em seu primeiro exemplo, você está definindo uma data; no segundo, NO_ZERO_DATE
causa o retorno de NULL porque você não está especificando uma data. Começando com 5.7.8, NO_ZERO_DATE
e NO_ZERO_IN_DATE
foram incluídos com o valor sql_mode padrão. De acordo com o manual , parece que a descontinuação e a remoção foram parcialmente revertidas (começando com 5.7.8), então você pode definir isso explicitamente em seu my.cnf
(ou por sessão). Você também deve consultar o manual sobre o NO_ZERO_DATE diretiva.