Деактивирайте NO_ZERO_DATE
SQL режим:
set @old_sql_mode = @@sql_mode;
set sql_mode = '';
Пуснете изявлението си:
UPDATE Estimates
SET CreatedDate = NULLIF(str_to_date(CreatedDate, '%c/%e/%y'), FROM_DAYS(0))
След това активирайте оригиналните режими на SQL:
set sql_mode = @old_sql_mode;
Деактивиране на NO_ZERO_DATE режим ще направи STR_TO_DATE върнете нулева дата 0000-00-00 за невалидни низове за дата, същата стойност се връща от FROM_DAYS(0) . Така че NULLIF ще преобразува нулевите дати в NULL .
Този отговор беше полезно.