mysql UPDATE表值,DATE FORMAT%d-%m-%y TO%y-%m-%d

时间:2016-07-22 03:14:23

标签: mysql

在数据库导入期间,我有点搞砸了。所以现在我有一个DATE类型的日期列,但是年份和日期都在错误的位置,这一天最终出现在年份列中,而mysql已将其自动格式化为年份......进一步恶化的事情。

我在下面的表格中有值

dates(dddd-mm-yy)
2030-05-12
2021-06-13
2012-12-13

我希望他们这样

dates(yyyy-mm-dd)
2012-05-30
2013-06-21
2013-12-12

请注意我实际上想要更新专栏,我已经看过并尝试过很多关于SELECT的例子

Thnx提前。

2 个答案:

答案 0 :(得分:0)

您可以使用substring()和concat()来连接任何您想要的内容。以下是供您参考的声明(表格为tb_test,列名为col_date)。

update tb_test set col_date = concat('20',substring(col_date,7,2),'-',substring(col_date,4,2),'-',substring(col_date,1,2));

答案 1 :(得分:0)

我不知道这是否可归类为"解决方案",可能更多的解决方案,但它对我来说是完美的。

阅读this之后,我意识到当我尝试以dd-mm-yy格式导入日期时我的问题就开始了,因此Mysql认为我的日子是年份,并将我的日期表示为yydd-mm- YY

我的日期格式为yydd-mm-yy,我已经多次尝试查询

UPDATE table_name
SET DATES =  DATE_FORMAT(DATES, '%Y-%m-%d');

此查询已运行,​​但未对表进行任何更改,因为在Mysql的眼中,它帮助我将日期格式化为yyyy-mm-dd,直到我导入数据库时​​,但我的日期仍然是yydd-mm- DD

所以我想,如果我尝试查询会怎么样?

UPDATE table_name
SET DATES =  DATE_FORMAT(DATES, '%d-%m-%y');

这样Mysql切换了几天和几年,然后提供我的日期为yyyy-mm-dd,这是一个令人困惑的事情,Mysql处理日期的方式但是2030-05-12这样的日期的最终结果是2012-05-30