bil*_*uli 1 sql postgresql sqldatatypes
如何将VARCHAR()类型更改为在 Postgresql 中DATETIME使用ALTER?
列数据的结构已经如下:"2013-12-08 16:09:07"
您需要USING子句 toALTER TABLE ... ALTER COLUMN ... TYPE和function to_timestamp。
ALTER TABLE mytable
ALTER COLUMN thecolumn
TYPE TIMESTAMP WITH TIME ZONE
USING to_timestamp(thecolumn, 'YYYY-MM-DD HH24:MI:SS');
Run Code Online (Sandbox Code Playgroud)
在这种情况下,由于数据看起来已经是有效的时间戳,您可以通过强制转换来简化它:
ALTER TABLE mytable
ALTER COLUMN thecolumn
TYPE TIMESTAMP WITH TIME ZONE
USING to_timestamp(thecolumn::timestamp with time zone);
Run Code Online (Sandbox Code Playgroud)
您会注意到我使用了类型名称“timestamp with time zone”而不是“datetime”。这是因为在 PostgreSQL 中,datetime只是timestamp without time zone... 的别名,但在大多数情况下您实际上想使用它timestamp with time zone。要了解有关时间戳的更多信息,请参阅手册。