【问题标题】:Change varchar column to datetime?将 varchar 列更改为日期时间?
【发布时间】:2020-05-29 19:02:51
【问题描述】:

我在 mysql 表中有一个名为“dtm”的列
里面的数据是这样的“20200525/0704Z”
它有祖鲁语格式的日期和时间。
当前列类型为 varchar 255。

如何将其转换为更有用的列类型,例如日期时间?

在尝试仅更改列类型时,我得到“精度误差最大为 6”。
谢谢

【问题讨论】:

  • 创建一个新列
  • 编写自己的出路,假设您没有更改期望该格式的整个代码库.. 使用日期时间制作列 dtmtmp 等.. 制作一个 5-10ish 行脚本,循环修复格式并添加到列,删除旧列和代码重命名新列,煮咖啡..
  • 请将 Calvin 的回答标记为已接受,因为我说过我的只是对他的补充。

标签: php mysql


【解决方案1】:

您最好使用日期时间数据类型创建第二列。然后使用 php 将旧的 dtm 格式转换并更新为新的 datetime 列,最后删除旧的 dtm 列。

【讨论】:

    【解决方案2】:

    @Calvin-Tan 答案的附录,因为它不适合评论部分。

    您可以使用以下查询直接在 MySQL 中从旧列填充新列:

    UPDATE table SET new_date = CONCAT(
      SUBSTR(old_date, 1, 4),
      '-',
      SUBSTR(old_date, 5, 2),
      '-',
      SUBSTR(old_date, 7, 2),
      ' ',
      SUBSTR(old_date, 10, 2),
      ':',
      SUBSTR(old_date, 12, 2),
      ':00'
    );
    

    这会将字符串重新格式化为2020-05-25 07:04:00

    还请记住,MySQL 日期/时间类型没有时区的概念

    【讨论】:

      猜你喜欢
      • 2017-09-13
      • 1970-01-01
      • 2017-07-20
      • 1970-01-01
      • 1970-01-01
      • 2022-01-17
      • 2014-06-07
      • 2019-12-26
      • 1970-01-01
      相关资源
      最近更新 更多