在MySQL中将列中的所有值从VARCHAR转换为DATE

时间:2016-07-27 17:28:01

标签: mysql date str-to-date

我知道如何使用STR_TO_DATE(str,fmt);将更改特定字符串的格式,但如果我有一个文本格式的所有不同日期的列(例如2016年1月11日,2016年1月25日,2015年6月27日......)我该怎么办?将列中的所有数据转换为DATE格式?从我阅读的所有内容来看,您似乎需要提供每次都要转换的确切值。

2 个答案:

答案 0 :(得分:0)

您可以使用多个 ifnull 功能。

select ifnull(STR_TO_DATE(a,'%Y-%m-%d'),sTR_TO_DATE(a,'%Y-%d-%m')) from [YourTable];

update [YourTable] set timestamp=ifnull(STR_TO_DATE([Colum],'%Y-%m-%d'),sTR_TO_DATE(a,'%Y-%d-%m')) ;

希望这有帮助。

答案 1 :(得分:0)

感谢Mark B.

str_to_date(yourfield,'%d /%m /%Y'),已完成。您可以使用记录中的字段作为更新查询的一部分,例如更新foo set bar = bar + 1完全合法/有效。

所以我用过:

update [My_Table]
set Create_Date = str_to_date(Create_Date, '%d/%m/%Y')