【问题标题】:Changing data type "Varchar" to "TimeStamp" in PostgreSQL在 PostgreSQL 中将数据类型“Varchar”更改为“TimeStamp”
【发布时间】:2012-11-06 13:41:05
【问题描述】:

我的数据集包含一列,其中包含“varchar”数据类型的日期和时间,如下所示:

2009 年 4 月 23 日 11:34:01

上述列的数据类型是varchar,我想问一下如何将数据类型更改为“时间戳”。

【问题讨论】:

    标签: types timestamp varchar sqldatatypes


    【解决方案1】:

    我会在表中添加一个新的目标类型的 NULLable 列。

    您可以尝试根据数据的简单解析来填充列数据库。

    然后您可以运行 SELECT 将原始日期字符串与新日期字符串进行比较,但也可以使用输出格式化程序函数,以便字符串应该是一致的。然后让 SQL 使用 HAVING 子句比较这两个值。

    一旦您有了能够转换现有数据的解决方案。

    你应该努力改变策略。这可能需要更改软件。这可以通过首先确保 INSERT 和 UPDATE 将数据保存在 BOTH 列中的所有数据来完成。

    然后您对所有现有数据运行转换过程。

    此时对数据库的所有更改都应始终保持旧列和新列。也许您需要审核/运行系统一段时间以确保所有内容都被捕获,因为您现在可以随时重新运行比较/验证步骤。

    然后您可以处理 SELECT 用例。然后最后实际删除 VARCHAR 列。

    所有这一切的重点是一个受控的逐步过程,其中在每次更改之间都有回滚选项和测试。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-17
      • 1970-01-01
      • 2014-11-13
      • 1970-01-01
      相关资源
      最近更新 更多