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

Forkert DateTime Værdi '0000-00-00 00:00:00' - Date_Sub() i at have

Første mulighed:

Denne advarsel kan sandsynligvis skyldes SQL_MODE .

Ifølge mysql-dokumentationen "Hvis SQL-tilstanden NO_ZERO_DATE eller NO_ZERO_IN_DATE er aktiveret, er nul datoer eller dele af datoer ikke tilladt.". Så dette kan være årsagen til din INSERT med '0000-00-00 00:00:00' mislykkes.

Du kan tjekke din sql-tilstand ved at udføre dette:

SELECT @@sql_mode;

og hvis nogen af ​​NO_ZERO_DATE eller NO_ZERO_IN_DATE er indstillet, så kan du bare:

SET sql_mode = '';

Anden mulighed

Den anden mulighed er, at den fejler på grund af STRICT_TRANS_TABLES mode.Som mysql-dokumentationen siger:

Det samme gælder for datetime.

Så du skal enten deaktivere STRICT MODE ELLER hvis deaktivering ikke er en mulighed - rediger forespørgslen, så den ikke returnerer ugyldigt dato/dato/tidspunkt resultat



  1. Hvad hedder MySQL's SQL-specifikke programmeringssprog?

  2. Sådan gendannes Galera Cluster- eller MySQL-replikation fra Split Brain Syndrome

  3. opdele streng i flere rækker

  4. java.lang.ClassNotFoundException:com.mysql.jdbc.Driver under Runtime (eclipse / maven /tomcat)