Detta beror verkligen på SQL-läget NO_ZERO_DATE
. Du borde ha sett det när Anand Rockzz länkade till manualen, men den länken är bara hälften av förklaringen. Från och med MySQL 5.7.4 är inställningen föråldrad. I ditt första exempel anger du ett datum; i den andra, NO_ZERO_DATE
orsakar återkomsten av NULL eftersom du inte anger ett datum. Börjar med 5.7.8, NO_ZERO_DATE
och NO_ZERO_IN_DATE
har inkluderats med standardvärdet sql_mode. Enligt handboken , verkar det som om utfasningen och borttagningen delvis har återställts (från och med 5.7.8), så du kanske kan ställa in detta uttryckligen i din my.cnf
(eller per-session).
Du bör också se manualen angående NO_ZERO_DATE direktiv.