Mysql
 sql >> Database >  >> RDS >> Mysql

La funzione mySQL str_to_date() restituisce un errore

Disattiva NO_ZERO_DATE Modalità SQL:

set @old_sql_mode = @@sql_mode; 
set sql_mode = ''; 

Esegui la tua dichiarazione:

UPDATE Estimates
SET CreatedDate = NULLIF(str_to_date(CreatedDate, '%c/%e/%y'), FROM_DAYS(0))

Quindi abilita le modalità SQL originali:

set sql_mode = @old_sql_mode;

Disattivazione di NO_ZERO_DATE la modalità farà STR_TO_DATE restituire la data zero 0000-00-00 per stringhe di date non valide, lo stesso valore viene restituito da FROM_DAYS(0) . Quindi NULLIF convertirà zero date in NULL .

Questa risposta è stato utile.