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

mySQL str_to_date() funktion returnerer fejl

Deaktiver NO_ZERO_DATE SQL-tilstand:

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

Kør din erklæring:

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

Aktiver derefter originale SQL-tilstande:

set sql_mode = @old_sql_mode;

Deaktiverer NO_ZERO_DATE tilstand vil gøre STR_TO_DATE returner nul dato 0000-00-00 for ugyldige datostrenge returneres den samme værdi af FROM_DAYS(0) . Så NULLIF vil konvertere nul datoer til NULL .

Dette svar var nyttigt.



  1. Sådan rettes com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:Ingen handlinger tilladt efter forbindelsen er lukket. undtagelse?

  2. Optimistisk samtidighed:IsConcurrencyToken og RowVersion

  3. Sådan gør du sql-mode=NO_ENGINE_SUBSTITUTION permanent i MySQL my.cnf

  4. MySql:Forespørg på flere identiske dynamiske tabeller