POSTGRESQL 将日期转换为 unix 时间戳 int
POSTGRESQL convert date to unix timestamp int
我有一个 table 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 将任何 deleted_by 日期值替换为新的空 'null' 整数变量?
您可以根据您的要求尝试以下更改语句:
ALTER TABLE matches ALTER COLUMN deleted_date TYPE INT USING extract(epoch from deleted_date)::INT;
如果您想存储时间戳(日期 + 时间),您应该将列转换为 timestamp
或更好的 timestamptz
类型 - not 使用整数来存储时间戳。
alter table matches alter deleted_date type timestamp
我有一个 table 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 将任何 deleted_by 日期值替换为新的空 'null' 整数变量?
您可以根据您的要求尝试以下更改语句:
ALTER TABLE matches ALTER COLUMN deleted_date TYPE INT USING extract(epoch from deleted_date)::INT;
如果您想存储时间戳(日期 + 时间),您应该将列转换为 timestamp
或更好的 timestamptz
类型 - not 使用整数来存储时间戳。
alter table matches alter deleted_date type timestamp