如何在 Postgresql 中使用 ALTER 将 VARCHAR 类型更改为 DATETIME?
Posted
技术标签:
【中文标题】如何在 Postgresql 中使用 ALTER 将 VARCHAR 类型更改为 DATETIME?【英文标题】:How to change VARCHAR type to DATETIME using ALTER in Postgresql? 【发布时间】:2014-11-13 00:16:33 【问题描述】:如何在 Postgresql 中使用 ALTER
将 VARCHAR()
类型更改为 DATETIME
?
列数据的结构已经像:"2013-12-08 16:09:07"
【问题讨论】:
【参考方案1】:您想要USING
clause to ALTER TABLE ... ALTER COLUMN ... TYPE
和the 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。
【讨论】:
以上是关于如何在 Postgresql 中使用 ALTER 将 VARCHAR 类型更改为 DATETIME?的主要内容,如果未能解决你的问题,请参考以下文章
ALTER TABLE,在非空列中设置空,PostgreSQL 9.1