1

我有一个表格,其中matches有一列deleted_date日期类型,所以它的值2020-12-30现在看起来像。我想将此列的类型从 date 更改为 int,以便可以存储 unix 时间戳。

我正在尝试通过运行以下命令来做到这一点:

ALTER TABLE matches ALTER COLUMN deleted_date TYPE INT USING deleted_date::INT;

但是运行这个命令给了我错误:

 error: cannot cast type date to integer

有没有办法告诉 POSTGRESQL 用新的空“null”整数变量替换任何 deleted_by 日期值?

4

2 回答 2

2

如果要存储时间戳(日期 + 时间),则应将该列转换为timestamp更好 的timestamptz类型 - 不要使用整数来存储时间戳。

alter table matches alter deleted_date type timestamp 
于 2020-12-31T08:40:34.187 回答
0

您可以根据您的要求尝试以下更改语句:

ALTER TABLE matches ALTER COLUMN deleted_date TYPE INT USING extract(epoch from deleted_date)::INT;

于 2020-12-31T07:06:00.383 回答