1292: Incorrect datetime value / truncated incorrect value(日時の値が不正 / 不正な値の切詰め)
MySQL意味
対象列の型 (特に日付/時刻や数値) への変換時に、値が無効または不正な形式だった。厳格モードでは MySQL はこれをエラーとして拒否する。
原因
'0000-00-00' のような無効な日付や値、誤った日付形式、数値列への非数値テキスト、厳格 SQL モード (STRICT_TRANS_TABLES) が有効、異なる文字セット/照合順序による変換の問題。
対処方法
値を列の型に対して有効な形式にする (日付は 'YYYY-MM-DD')。空/無効な日付の代わりに NULL を使う。必要なら STR_TO_DATE で明示的な書式を指定する: STR_TO_DATE(str, '%Y-%m-%d')。一時的な許容が必要なら sql_mode を見直すが、できればデータを修正する。絞り込んで問題の行を特定する。
同じデータベースの他の項目
- 1052Column 'x' in field list is ambiguous(フィールドリストの列が曖昧)
- 1136Column count doesn't match value count(列数と値の数が一致しない)
- 1048Column 'x' cannot be null(列は NULL にできない)
- 1406Data too long for column(列に対してデータが長すぎる)
- 1071Specified key was too long; max key length is 767 bytes(キーが長すぎる)
- 1050Table already exists(テーブルがすでに存在する)
- 1051Unknown table 'x'(不明なテーブル)