sql >> Databasteknik >  >> RDS >> Mysql

Felaktigt DateTime-värde '0000-00-00 00:00:00' - Date_Sub() i att ha

Första alternativet:

Den här varningen kan förmodligen bero på SQL_MODE .

Enligt mysql-dokumentationen "Om SQL-läget NO_ZERO_DATE eller NO_ZERO_IN_DATE är aktiverat, är noll datum eller delar av datum inte tillåtna.". Så detta kan vara orsaken till din INSERT med '0000-00-00 00:00:00' misslyckas.

Du kan kontrollera ditt sql-läge genom att utföra detta:

SELECT @@sql_mode;

och om någon av NO_ZERO_DATE eller NO_ZERO_IN_DATE är inställda kan du bara:

SET sql_mode = '';

Andra alternativet

Det andra alternativet är att det misslyckas på grund av STRICT_TRANS_TABLES mode.Som mysql-dokumentationen säger:

Detsamma gäller för datetime.

Så du måste antingen inaktivera STRICT MODE ELLER om det inte är ett alternativ att inaktivera det - ändra frågan så att den inte returnerar ogiltigt datum/datum/tid-resultat



  1. I Apache Spark 2.0.0, är ​​det möjligt att hämta en fråga från en extern databas (istället för att ta hela tabellen)?

  2. Databasen kan inte öppnas eftersom den är version 782. Denna server stöder version 706 och tidigare. En nedgraderingsväg stöds inte

  3. PHP-skript för att logga rådata för POST

  4. Dumpar MySQL-tabeller till JSON med Golang