我有一个varchar(9)列,其数据格式为m / d / yy。我想将它转换为yyyy-mm-dd。我可以使用此查询选择所有值并查看我的更改
SELECT STR_TO_DATE(date_new,'%m/%d/%Y') as date
FROM july
我的问题是如何更新该列中的所有值。我尝试使用这个查询,弄乱了所有日期。
UPDATE july
SET date_new = str_to_date(date_new, '%d-%m-%Y' );
任何帮助都会很乐意接受!
提前谢谢你。 :)
答案 0 :(得分:2)
你很亲密。您可以使用DATE_FORMAT()
将其转换回所需的字符串表示形式。
UPDATE july
SET date_new = DATE_FORMAT(STR_TO_DATE(date_new,'%m/%d/%Y'), '%Y-%m-%d');
注意:您需要将列从varchar(9)
更改为varchar(10)
以适合重新格式化的值。
ALTER TABLE july MODIFY date_new VARCHAR(10);
这是SQLFiddle。