微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

POSTGRESQL 将日期转换为 unix 时间戳 int

如何解决POSTGRESQL 将日期转换为 unix 时间戳 int

我有一个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”整数变量替换任何已删除的日期值?

解决方法

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

alter table matches alter deleted_date type timestamp 
,

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。