外部ソースからのデータが取り込まれたテーブルがあります。問題は、同じ列に対して 2 つの異なる形式の日付を取得していることです。形式にいくつかのレコードと'%Y-%m-%d %H:%i'
形式に他のレコードが'%Y-%d-%m %H:%i%s'
あり、それらはすべてVARCHAR
型です。
文字列型の日付フィールドを日付/日時フィールドに変換する方法は知っていますが、日付のずれをどのように処理すればよいですか? 個々の形式に基づいて日付を更新することは可能ですか?更新WHERE
が行われる条件を適用できるWHERE date_field
のは'%Y-%m-%d %H:%i'
形式のみであり、別のクエリを使用して日付フィールドを'%Y-%d-%m %H:%i%s'
形式で更新することはできますか?
現在、一般的なクエリでテーブルを更新しようとすると、フォーマットに一致しないフィールドでエラーが発生します。
UPDATE my_table
SET my_date_field = STR_TO_DATE(my_date_field,'%Y-%m-%d %H:%i:%s');
応答: エラー コード: 1411。日時の値が正しくありません: 関数 str_to_date の「10-22-12 15:00」
UPDATE my_table
SET my_date_field = STR_TO_DATE(my_date_field,'%Y-%d-%m %H:%i');
応答: エラー コード: 1292。切り捨てられた不正な日時値: '2010-01-01 00:00:00'