PostgreSQL:从布尔值更改列类型

时间:2013-07-25 21:48:07

标签: postgresql postgresql-9.1

我有表 t1 和列 c1 ,类型为boolean NULL。列中的所有值都为NULL。但是PostgreSQL不允许我这样改变列的类型:

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

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

如何更改类型?谢谢

2 个答案:

答案 0 :(得分:6)

如果列中的所有值确实为null,则只需添加USING NULL:无需进行任何难以转换。

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

答案 1 :(得分:0)

我认为你必须给它一个时区。这对我有用:

ALTER TABLE t1
    ALTER COLUMN c1 SET DATA TYPE timestamp with time zone
    USING
        timestamp with time zone 'epoch';
相关问题