将varchar m / d / yy更改为yyyy-mm-dd

时间:2016-08-24 03:19:11

标签: mysql date

我有一个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' );

任何帮助都会很乐意接受!

提前谢谢你。 :)

1 个答案:

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