MySQL エラー 1292: テーブル変更中の日付時刻値が正しくないを解決する方法?

DDD
リリース: 2024-11-27 16:46:11
オリジナル
835 人が閲覧しました

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

MySQL エラー 1292: 不正な日時値

MySQL では、テーブルのデータ型または文字セットを変更しようとすると、「不正です」というエラーが発生する可能性があります。日時値」エラー。このシナリオは、既存のデータが新しいデータ型またはエンコーディングと競合する場合に発生します。

たとえば、latin1 文字セットを使用してデータベースから UTF-8 を使用する MySQL 5.7 にデータをインポートすると、このエラーが発生する可能性があります。特定の列を変更しようとしたとき。

具体的には、datetime 列に無効な値 '0000-00-00 が含まれている場合00:00:00' の場合、この問題が発生する可能性があります。これを解決するには、次の手順を試してください:

  1. 無効な日時値を持つ行があるかどうかを確認します:
SELECT * FROM users WHERE created = '0000-00-00 00:00:00';
ログイン後にコピー
  1. 無効な日時値の更新を試行します。 CAST を使用して値を NULL に設定するfunction:
UPDATE users SET created = NULL WHERE CAST(created AS CHAR(20)) = '0000-00-00 00:00:00';
ログイン後にコピー
  1. 無効な値が更新されたら、意図した変更を続行できます:
ALTER TABLE users MODIFY first_name varchar(45) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL;
ログイン後にコピー

CAST 関数を使用すると、日時値を文字列に変換できます。その後、文字列を無効な値と比較し、値を上げずに NULL に更新できます。エラー。

以上がMySQL エラー 1292: テーブル変更中の日付時刻値が正しくないを解決する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート