Lihat STR_TO_DATE fungsi:
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
Dan kemudian kueri yang sama, dengan format tanggal sebagai '%m/%d/%Y'
, dan sekali lagi dengan '%M %D, %Y'
.Jika formatnya tidak cocok, STR_TO_DATE akan mengembalikan NULL dan baris tidak akan diperbarui.
Jika Anda ingin memasukkan data yang ada ke tabel baru, Anda dapat menggunakan sesuatu seperti ini:
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
(kolom_baru adalah kolom tanggal, dan Anda dapat memformatnya sesuai keinginan menggunakan PHP atau menggunakan DATE_FORMAT)