STR_TO_DATE 機能:
UPDATE yourtable
SET
new_column = STR_TO_DATE(varchar_date, '%m-%d-%Y')
WHERE
STR_TO_DATE(varchar_date, '%m-%d-%Y') IS NOT NULL
次に、同じクエリを、日付形式を'%m/%d/%Y'
とします。 、そして再び'%M %D, %Y'
。形式が一致しない場合、STR_TO_DATEはNULLを返し、行は更新されません。
既存のデータを新しいテーブルに挿入する場合は、次のように使用できます。
INSERT INTO new_table (ID, col1, col2, new_column)
SELECT
ID, col1, col2,
COALESCE(STR_TO_DATE(varchar_date, '%m-%d-%Y'),
STR_TO_DATE(varchar_date, '%m/%d/%Y'),
STR_TO_DATE(varchar_date, '%M %D, %Y'))
FROM oldtable
(new_columnは日付列であり、PHPまたはDATE_FORMATを使用して希望どおりにフォーマットできます)