sql >> Database >  >> RDS >> Mysql

Onjuiste datetime-waarde Databasefoutnummer:1292

Ik ontdekte na het upgraden naar MySQL 5.7 dat deze fout zich voordeed in willekeurige situaties, zelfs als ik geen datum opgaf in de query.

Dit lijkt te zijn omdat vorige versies van MySQL ondersteunde datums zoals 0000-00-00 00:00:00 (standaard) 5.7.4 heeft echter enkele wijzigingen aangebracht in de NO_ZERO_DATE instelling. Als je nog steeds oude gegevens hebt wanneer je een nieuwere MySQL-versie gebruikt, kunnen er willekeurige fouten opduiken.

Ik moest een dergelijke zoekopdracht uitvoeren om alle nuldatums naar een andere datum te resetten.

# If the columns supports NULL, use that
UPDATE table SET date_column = NULL WHERE date_column < '1000-01-01';

# Otherwise supply another default date
UPDATE table SET date_column = '1970-01-01' WHERE date_column < '1000-01-01';

U kunt ook de NO_ZERO_DATE . aanpassen instelling, maar let op wat de documenten erover zeggen:



  1. Verwijder alle rijen behalve de eerste N uit een tabel met een enkele kolom

  2. Verbinding maken met Oracle 12c Database vanuit Pentaho Data Integration (Kettle) Community Edition

  3. Is het een goed idee om MySQL en Neo4j samen te gebruiken?

  4. Gereserveerd woord in kolomnaam - invoegen in MySQL