改变列(使用+ where)

时间:2015-03-11 06:56:24

标签: sql postgresql alter

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

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

我需要在查询中添加WHERE cluose:

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

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

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

你不能使用where改变表列类型,因为&#34; where&#34;是DML和&#34;改变&#34;是DDL。使用update whe