ホームページ > データベース > mysql チュートリアル > 文字セット変更時の MySQL の「日付時刻値が正しくありません: \'0000-00-00 00:00:00\」エラーを修正する方法は?

文字セット変更時の MySQL の「日付時刻値が正しくありません: \'0000-00-00 00:00:00\」エラーを修正する方法は?

Barbara Streisand
リリース: 2024-11-30 11:20:10
オリジナル
421 人が閲覧しました

How to Fix MySQL's

MySQL の不正な日時値: '0000-00-00 00:00:00'

データベース エンジニアリングの領域では、次のようなことが考えられます。次のような複雑なエラー メッセージが表示されます。「日付時刻の値が正しくありません: 「0000-00-00 00:00:00」。このエラーは、MySQL バージョンの競合に対処しながらデータベース テーブルの文字セットを変更しようとするユーザーを悩ませることがよくあります。

この問題に対処するために、これまでに行った手順を詳しく調べてみましょう。

  1. データベースのセットアップ: データベースを MySQL 5.1 から MySQL に移行しました。 5.7 を実行し、非互換性が発生しました。
  2. デフォルトの文字セットの変更: 列の文字セットを latin1 から utf8 に変更しようとしました。
  3. 日時エラー: 「日時値が正しくありません: '0000-00-00」というエラーが発生しましたdatetime 列を変更しようとすると、00:00:00'" というメッセージが表示されます。

この問題を解決するには、次の方法を試してください:

ステップ 1: Null 値を確認する

日時列にnull値がないか確認します。次のクエリを使用できます:

SELECT count(*) FROM users WHERE created IS NULL;
ログイン後にコピー

null 値がある場合は、次のクエリを使用して値を '1970-01-01 00:00:00' に設定してみてください:

UPDATE users SET created = '1970-01-01 00:00:00' WHERE created IS NULL;
ログイン後にコピー

ステップ 2: CAST 関数を使用する

null がない場合値を指定するには、CAST 関数を使用して datetime 列を文字列に変換してみてください。

UPDATE users SET created = NULL WHERE CAST(created AS CHAR(20)) = '0000-00-00 00:00:00';
ログイン後にコピー

このクエリは、すべての '0000-00-00 00:00:00' 値を NULL に設定することで、次のことが可能になります。日時の文字セットを変更するには

結論

この記事は、エラーの潜在的な根本原因を調査し、段階的な解決策を提供することで、問題を解決するために必要な知識を身につけることを目的としています。 MySQL の使用中に発生する可能性のある同様の問題を解決します。

以上が文字セット変更時の MySQL の「日付時刻値が正しくありません: \'0000-00-00 00:00:00\」エラーを修正する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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