我有一个数据库,其中有多个使用日期字段的表。
其中一些具有作为varchar(10)
dd-mm-yyyy
的这种格式,而另一些具有dd-mm-yyyy
和yyyy-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
这工作正常