格式表与varchar日期格式到日期mysql

时间:2016-05-16 13:20:48

标签: php mysql date

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

其中一些格式为varchar(10) dd-mm-yyyy,其他格式为dd-mm-yyyyyyyy-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

1 个答案:

答案 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

这工作正常