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