我知道如何使用 STR_TO_DATE(str,fmt); 将更改特定字符串的格式,但如果我有一列包含所有不同日期的文本格式(例如 2016 年 1 月 11 日、2016 年 1 月 25 日、2016 年 6 月 27 日...)我该怎么办将列中的所有数据转换为 DATE 格式?从我正在阅读的所有内容来看,您似乎需要提供每次要转换的确切值。
2 回答
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')) ;
希望这可以帮助。
于 2016-07-27T17:42:00.543 回答
0
谢谢马克 B。
str_to_date(yourfield, '%d/%m/%Y'), 完成。您可以使用记录中的字段作为更新查询的一部分,例如 update foo set bar=bar+1 是完全合法/有效的。
所以我用:
update [My_Table]
set Create_Date = str_to_date(Create_Date, '%d/%m/%Y')
于 2016-07-27T18:10:44.903 回答