首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用postgresql将带时区的间隔转换为时间戳?

如何用postgresql将带时区的间隔转换为时间戳?
EN

Stack Overflow用户
提问于 2013-10-04 14:34:28
回答 1查看 5.7K关注 0票数 0

我想执行以下简单的查询:

代码语言:javascript
复制
SELECT
    pid,
    MIN(interval '5 minutes' - current_timestamp - state_change)
FROM
    pg_stat_activity
AND
    current_timestamp - state_change <= interval '5 minutes'
GROUP BY 
    pid
ORDER BY
    2 ASC
LIMIT 1;

但PG抱怨说,intervaltimestamp with time zone之间没有运营商。

如何将时间间隔转换为时间戳?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-04 17:29:12

不可能的转换不是问题,而是评价顺序的问题。在不改变参数顺序的情况下,您可以用括号编写它:

代码语言:javascript
复制
interval '5 minutes' - (current_timestamp - state_change)

而且,由于支持interval - interval,所以它可以工作。如果没有括号,它就无法工作,因为interval - timestamp将首先被计算,并且它没有实现。

作为一个侧面,由于pidpg_stat_activity中是唯一的,所以GROUP BY pidMIN应该被抑制,如下所示:

代码语言:javascript
复制
SELECT
    pid,
    interval '5 minutes' - (current_timestamp - state_change)
FROM
    pg_stat_activity
WHERE
    current_timestamp - state_change <= interval '5 minutes'
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19183916

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档