gpt4 book ai didi

sql - PostgreSQL 的时间戳差异(以小时为单位)

转载 作者:行者123 更新时间:2023-11-29 11:05:52 25 4
gpt4 key购买 nike

是否有 TIMESTAMPDIFF() 等同于 PostgreSQL?

我知道我可以减去两个时间戳以获得 postgresql INTERVAL。我只想要两个时间戳之间的差异,以小时为单位,由 INT 表示。

我可以在 MySQL 中这样做:

TIMESTAMPDIFF(HOUR, links.created, NOW())

我只需要用整数表示的两个时间戳之间的小时差。

解决方案对我有用:

SELECT "links_link"."created",
"links_link"."title",
(EXTRACT(EPOCH FROM current_timestamp - "links_link"."created")/3600)::Integer AS "age"
FROM "links_link"

最佳答案

首先弹出的东西

EXTRACT(EPOCH FROM current_timestamp-somedate)/3600

也许不漂亮,但畅通了道路。如果定义了按区间划分区间,可能会更漂亮。

编辑:如果您希望它大于零,请使用 abs 或 greatest(...,0)。以适合您的意图为准。

Edit++:我没有使用 age 的原因是 age 有一个参数,引用文档:从 current_date 中减去(午夜)。这意味着除非在午夜运行,否则您无法获得准确的“年龄”。现在是凌晨 1 点:

select age(current_timestamp);
age
------------------
-00:52:40.826309
(1 row)

关于sql - PostgreSQL 的时间戳差异(以小时为单位),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1964544/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com