Деактивирайте 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
.
Този отговор беше полезно.