我有一个使用日期字段的多个表的数据库。
其中一些格式为varchar(10)
dd-mm-yyyy
,其他格式为dd-mm-yyyy
和yyyy-mm-dd
。
我尝试将字段格式更改为DATE
,但dd-mm-yyyy
中的所有内容都变为0000-00-00
在更改字段类型之前,有一种正确的方法可以将所有varchars作为日期类型转换为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
答案 0 :(得分:0)
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
这工作正常