如何在 PostgreSQL 中将带时区的时间戳转换为数字(unix)?

Mal*_*gor 3 postgresql date

我的表中有带有时区的时间戳(timestamptz)。我可以将它们转换为 unix 时间戳格式的数字或 int 吗?

我发现了这个问题,但它只显示了如何将没有时区的时间戳转换为unix时间戳。

Vér*_*ace 5

为了解决这个问题,我看了这里

例如,我所在的时区为 UTC + 1,

所以,

SELECT CURRENT_TIMESTAMP AT TIME ZONE 'UTC';
Run Code Online (Sandbox Code Playgroud)

给出:

2019-06-06 17:41:00.216647
Run Code Online (Sandbox Code Playgroud)

这比时钟时间晚 1 小时,因为我使用的是 UTC + 1。

所以,然后从这里,我得到了SELECT EXTRACT(EPOCH FROM ts) FROM data

结合两者得出:

SELECT EXTRACT(EPOCH FROM (CURRENT_TIMESTAMP AT TIME ZONE 'UTC'));
Run Code Online (Sandbox Code Playgroud)

这对我来说给出:

date_part
1559843103.53928
Run Code Online (Sandbox Code Playgroud)

YMMV - 小提琴可用在这里- 将您的时间戳记放入 current_timestamp 的公式中,您应该是黄金!

有趣的是,您可以在这里检查您的结果。

ps欢迎来到论坛!:-)