Das liegt tatsächlich am SQL-Modus NO_ZERO_DATE
. Sie hätten das sehen sollen, als Anand Rockzz auf das Handbuch verlinkt hat, aber dieser Link ist nur die halbe Erklärung. Ab MySQL 5.7.4 ist die Einstellung veraltet. In Ihrem ersten Beispiel legen Sie ein Datum fest; im zweiten NO_ZERO_DATE
bewirkt die Rückgabe von NULL, da Sie kein Datum angeben. Ab 5.7.8 NO_ZERO_DATE
und NO_ZERO_IN_DATE
wurden in den Standardwert sql_mode aufgenommen. Laut dem Handbuch , scheint es, als ob die Verwerfung und Entfernung teilweise rückgängig gemacht wurde (beginnend mit 5.7.8), sodass Sie dies möglicherweise explizit in Ihrer my.cnf
festlegen können (oder pro Sitzung).
Beachten Sie auch das Handbuch zum NO_ZERO_DATE Richtlinie.