使用varchar日期格式的格式表到日期mysql


format table with varchar date format to date mysql

我有一个数据库,其中有多个使用日期字段的表。

其中一些具有作为varchar(10) dd-mm-yyyy的这种格式,而另一些具有dd-mm-yyyyyyyy-mm-dd的混合。

我尝试将字段的格式更改为DATE,但是,dd-mm-yyyy中的所有内容都变成了0000-00-00

在更改字段类型之前,是否有正确的方法将所有varchars转换为日期类型,并且在具有混合日期格式的tale中仅将dd-mm-yyyy转换为date格式

date
--------
01-12-2015 *** change this
05-11-2016 *** this
01-04-2016 ***  and this
2016-05-11 +++ and keep the ones on this format
UPDATE `table` 
SET `Fecha`=date_format(str_to_date(`Datefield`, '%d-%m-%Y'), '%Y-%m-%d') 
WHERE date_format(str_to_date(`Datefield`, '%d-%m-%Y'), '%Y-%m-%d') IS NOT NULL

这工作正常