改变列(使用+ where)

问题描述 投票:0回答:2

我使用postgresql 9.3,我使用此查询将timestamp列转换为UTC。

ALTER TABLE table 
ALTER timestamp TYPE timestamp 
USING timestamp AT TIME ZONE 'UTC' ;

我需要在查询中添加WHERE子句:

ALTER TABLE table 
ALTER timestamp TYPE timestamp where timestamp < '2015-01-06 00:00:00'
USING timestamp AT TIME ZONE 'UTC' ;

但是,这是行不通的。关于如何做到这一点没有明确的资源。

sql postgresql alter
2个回答
2
投票

您只能将ALTER TYPE构造应用于整列,而不能应用于某些行。如果要转换时间戳值,则应使用UPDATE。


2
投票

你不能使用where改变表列类型,因为“where”是DML而“alter”是DDL。使用更新whe

© www.soinside.com 2019 - 2024. All rights reserved.