在数据库导入期间,我有点搞砸了。所以现在我有一个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提前。
答案 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