Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Die mySQL-Funktion str_to_date() gibt einen Fehler zurück

Deaktivieren Sie NO_ZERO_DATE SQL-Modus:

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

Führen Sie Ihre Anweisung aus:

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

Aktivieren Sie dann die ursprünglichen SQL-Modi:

set sql_mode = @old_sql_mode;

NO_ZERO_DATE wird deaktiviert Modus wird STR_TO_DATE machen Nulldatum zurückgeben 0000-00-00 für ungültige Datumszeichenfolgen wird derselbe Wert von FROM_DAYS(0) zurückgegeben . Also NULLIF wandelt Nulldaten in NULL um .

Diese Antwort war hilfreich.