![postgres,更改表的数据字段类型](https://linux22.com/image/1405321/postgres%EF%BC%8C%E6%9B%B4%E6%94%B9%E8%A1%A8%E7%9A%84%E6%95%B0%E6%8D%AE%E5%AD%97%E6%AE%B5%E7%B1%BB%E5%9E%8B.png)
我正在使用 postgres,我有一个表,其中有一列的数据类型是没有时区的时间戳。
我想将数据类型更改为 bigint。我试图在列中存储自 1970 年以来的秒数。所以像 1397597908756 这样大的数字
当我将此数字存储在表中时,它会引发异常“时间戳类型输入语法无效:1397597908756
因此我尝试将数据类型从“无时区时间戳”更改为“bigint”。我执行了 ALTER TABLE 表名 ALTER COLUMN 列名 SET DATA TYPE bigint USING updated::bigint;
我收到以下错误:错误:无法将没有时区的时间戳类型转换为 bigint
答案1
ALTER TABLE 表名 ALTER COLUMN 列名 TYPE bigint USING extract(epoch from 列名);
应该按照你的要求做