Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 在同一列中更新不同的日期格式_Mysql - Fatal编程技术网

Mysql 在同一列中更新不同的日期格式

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')

我想将“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')
            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