Mysql 在同一列中更新不同的日期格式
我想将“date\u col”列从Varchar更改为date(US)。 此列也有数据,但日期格式不同。以下是3种不同的日期格式:Mysql 在同一列中更新不同的日期格式,mysql,Mysql,我想将“date\u col”列从Varchar更改为date(US)。 此列也有数据,但日期格式不同。以下是3种不同的日期格式: '2012-02-27' '12/05/2013' '24-03-2015' 我以前尝试过对所有数据进行更新,但都不起作用。这是密码 UPDATE table SET date_col = STR_TO_DATE(date_col, '%d/%m/%Y')
'2012-02-27'
'12/05/2013'
'24-03-2015'
我以前尝试过对所有数据进行更新,但都不起作用。这是密码
UPDATE table SET date_col = STR_TO_DATE(date_col, '%d/%m/%Y')
WHERE date_col != DATE_FORMAT(date_col, '%Y-%m-%d');
有什么好主意吗
THX预先他不会将现有数据转换为默认的日期格式“yyyy-mm-dd”,只进行正则表达式匹配不是更容易吗?您要查找的字符串将始终以“/xxxx”(四位数年“/”结尾),因此可能只匹配正则表达式?不,不总是这样,我还有结尾的日期!所以我并不是每次都有相同的数字顺序,所以只需要做3个查询,每种格式一个。。。另一条建议是,我建议不要直接更新。创建另一个类型为
date
的列date\u col\u staging
,并在那里输出重新格式化的结果。处理所有格式并仔细检查所有内容后,只需删除旧列(date\u col
)并将date\u col\u staging
重命名为date\u col
。强烈同意@Ruslan