如何在 Redshift 中获取纪元时间?

Posted

技术标签:

【中文标题】如何在 Redshift 中获取纪元时间?【英文标题】:How to get epoch time in Redshift? 【发布时间】:2017-03-29 11:01:04 【问题描述】:

在我的架构中,我有一个 created_on 字段。我想在插入时自动为其分配 EPOCH 时间值。如何实现?

【问题讨论】:

【参考方案1】:
select date_part(epoch,sysdate)::int

如果我做了一个错误的假设,请发表评论,我会重新调整我的答案。

【讨论】:

【参考方案2】:

在 PostgreSQL 上(从 redshift 被分叉)你会这样做:

ALTER TABLE sometable ALTER COLUMN created_on SET DEFAULT EXTRACT(EPOCH FROM now())

也许它也适用于红移。

【讨论】:

显然这是一个错误:ALTER COLUMN SET/DROP DEFAULT is not supported;我的桌子是空白的,所以我不介意从头开始创建一张。但是,EXTRACT 的列类型是 date_part。是否可以将其转换为整数?我使用纪元时间作为版本号。 我认为 date_part 只是 EXTRACT() 函数结果的默认名称。根据文档,redshift 中的返回类型应该是整数:docs.aws.amazon.com/redshift/latest/dg/r_EXTRACT_function.html 它与 PostgreSQL 不同,在 PostgreSQL 中,返回类型是真实的。所以你不需要强制转换它。【参考方案3】:

RedShift 没有 now() 但有 getdate(),所以这将是获取 epoch 的表达式:

SELECT EXTRACT(EPOCH FROM GETDATE());

【讨论】:

【参考方案4】:
SELECT EXTRACT(EPOCH FROM now());

【讨论】:

以上是关于如何在 Redshift 中获取纪元时间?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 C# 中获取纪元时间? [复制]

如何在 Redshift 中将时间戳(具有毫秒)转换为 EPOCH

如何在java中获取自定义日期和时间的纪元?

AWS API Gateway - 如何在正文映射模板中获取日期/时间戳/纪元?

如何从当天的纪元时间获取天数? [复制]

如何从 postgres 获取时间戳作为 Unix 纪元?