Mysql
 sql >> Base de données >  >> RDS >> Mysql

La fonction mySQL str_to_date() renvoie une erreur

Désactiver NO_ZERO_DATE Mode SQL :

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

Exécutez votre déclaration :

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

Activez ensuite les modes SQL d'origine :

set sql_mode = @old_sql_mode;

Désactivation de NO_ZERO_DATE le mode fera STR_TO_DATE retourner la date zéro 0000-00-00 pour les chaînes de date non valides, la même valeur est renvoyée par FROM_DAYS(0) . Donc NULLIF convertira les dates zéro en NULL .

Cette réponse a été utile.