【问题标题】:How to change VARCHAR type to DATETIME using ALTER in Postgresql?如何在 Postgresql 中使用 ALTER 将 VARCHAR 类型更改为 DATETIME?
【发布时间】:2014-11-13 00:16:33
【问题描述】:

如何在 Postgresql 中使用 ALTERVARCHAR() 类型更改为 DATETIME

列数据的结构已经像:"2013-12-08 16:09:07"

【问题讨论】:

    标签: sql postgresql sqldatatypes


    【解决方案1】:

    您想要USING clause to ALTER TABLE ... ALTER COLUMN ... TYPEthe to_timestamp function

    ALTER TABLE mytable 
      ALTER COLUMN thecolumn 
       TYPE TIMESTAMP WITH TIME ZONE 
         USING to_timestamp(thecolumn, 'YYYY-MM-DD HH24:MI:SS');
    

    在这种情况下,由于数据看起来已经是一个有效的时间戳,您可能可以使用强制转换来简化它:

    ALTER TABLE mytable 
      ALTER COLUMN thecolumn 
       TYPE TIMESTAMP WITH TIME ZONE 
         USING to_timestamp(thecolumn::timestamp with time zone);
    

    您会注意到我使用了类型名称“timestamp with time zone”而不是“datetime”。这是因为在 PostgreSQL 中,datetime 只是timestamp without time zone 的别名...但在大多数情况下,您实际上想使用timestamp with time zone。要了解有关时间戳的更多信息,请see the manual

    【讨论】:

      猜你喜欢
      • 2013-02-26
      • 2012-11-06
      • 2017-10-23
      • 2018-05-29
      • 2018-10-17
      • 2023-02-08
      • 2012-10-01
      • 2019-08-26
      • 2011-02-05
      相关资源
      最近更新 更多