我有表 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
如何更改类型?谢谢
答案 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';