【问题标题】:Convert All Values in a Column From VARCHAR to DATE in MySQL在 MySQL 中将列中的所有值从 VARCHAR 转换为 DATE
【发布时间】:2016-12-01 20:32:58
【问题描述】:

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

【问题讨论】:

  • 所以? str_to_date(yourfield, '%d/%m/%Y'),完成。您可以将记录中的字段用作更新查询的一部分,例如update foo set bar=bar+1 完全合法/有效。
  • 你是对的 - 我在测试中得到“NULL”,但它确实有效:update pp_drops_dev set Create_Date = str_to_date(Create_Date, '%d/%m/%Y')

标签: mysql date str-to-date


【解决方案1】:

您可以为此使用多个 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')) ;

希望这会有所帮助。

【讨论】:

    【解决方案2】:

    谢谢马克 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')
    

    【讨论】:

      猜你喜欢
      • 2019-08-17
      • 1970-01-01
      • 2020-03-11
      • 1970-01-01
      • 2011-02-05
      • 1970-01-01
      • 2021-01-29
      • 2014-04-12
      • 1970-01-01
      相关资源
      最近更新 更多