Heim >Datenbank >MySQL-Tutorial >Wie behebt man den MySQL-Fehler 1292: Falscher Datetime-Wert während der Tabellenänderung?

Wie behebt man den MySQL-Fehler 1292: Falscher Datetime-Wert während der Tabellenänderung?

DDD
DDDOriginal
2024-11-27 16:46:11853Durchsuche

How to Resolve MySQL Error 1292: Incorrect Datetime Value During Table Alteration?

MySQL-Fehler 1292: Falscher Datetime-Wert

In MySQL kann der Versuch, den Datentyp oder Zeichensatz einer Tabelle zu ändern, zur Meldung „Falsch“ führen Fehler „Datum/Uhrzeit-Wert“. Dieses Szenario tritt auf, wenn vorhandene Daten mit dem neuen Datentyp oder der neuen Codierung in Konflikt stehen.

Beim Importieren von Daten aus einer Datenbank mit dem Zeichensatz latin1 in MySQL 5.7, das UTF-8 verwendet, kann dieser Fehler auftreten wenn versucht wird, bestimmte Spalten zu ändern.

Insbesondere, wenn eine Datum/Uhrzeit-Spalte den ungültigen Wert „0000-00-00 00:00:00“ enthält, Sie könnten mit diesem Problem konfrontiert sein. Um das Problem zu beheben, versuchen Sie die folgenden Schritte:

  1. Überprüfen Sie, ob Zeilen mit dem ungültigen Datums-/Uhrzeitwert vorhanden sind:
SELECT * FROM users WHERE created = '0000-00-00 00:00:00';
  1. Versuchen Sie, den ungültigen Wert zu aktualisieren Werte mithilfe der CAST-Funktion auf NULL setzen:
UPDATE users SET created = NULL WHERE CAST(created AS CHAR(20)) = '0000-00-00 00:00:00';
  1. Sobald die ungültigen Werte aktualisiert wurden, Sie können mit der beabsichtigten Änderung fortfahren:
ALTER TABLE users MODIFY first_name varchar(45) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL;

Es ist wichtig zu beachten, dass Sie mit der CAST-Funktion den Datum/Uhrzeit-Wert in eine Zeichenfolge konvertieren können, die dann mit dem ungültigen Wert verglichen und aktualisiert werden kann auf NULL setzen, ohne den Fehler auszulösen.

Das obige ist der detaillierte Inhalt vonWie behebt man den MySQL-Fehler 1292: Falscher Datetime-Wert während der Tabellenänderung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn