3

我有布尔 NULL 类型的表t1和列c1。列中的所有值都是 NULL。但是 PostgreSQL 不会让我以这种方式更改列的类型:

ALTER TABLE "t1"
ALTER "c1" TYPE timestamp;

* ERROR: column "c1" cannot be cast to type timestamp without time zone

如何更改类型?谢谢

4

2 回答 2

7

如果您的列中的所有值确实为空,则简单的 add USING NULL:没有困难的转换。

ALTER TABLE "t1"
ALTER "c1" TYPE timestamp USING NULL;
于 2013-07-25T22:09:18.303 回答
0

我认为你只需要给它一个时区。这对我有用:

ALTER TABLE t1
    ALTER COLUMN c1 SET DATA TYPE timestamp with time zone
    USING
        timestamp with time zone 'epoch';
于 2013-07-25T22:00:56.563 回答