PostgreSQL DATE_PART函数

时间:2019-04-29 12:31:51

标签: sql postgresql

我需要找到发送所有文档的时间不超过10分钟的所有应用程序。我已经完成了其余的代码,但是date_part函数有问题。下面的代码工作正常,但我必须找到另一种方法。我该怎么做?

abs(
    round(
        (
            date_part('hour',d.received_date)
            - 
            date_part('hour',d.send_date)
        ) * 60
        + 
        (
            date_part('minute', d.received_date)
            -
            date_part('minute', d.send_date)
        )
    )
) as sendTime

1 个答案:

答案 0 :(得分:0)

我不清楚是要将结果限制为相差小于10分钟的行(如问题所述),还是只想以分钟为单位显示两个时间戳之间的结果(如您在评论)。

表达式r.received_date - r.send_date返回一个interval,可以很容易地将其转换为分钟。因此,要显示差异,请使用:

extract(epoch from d.received_date - d.send_date) / 60 as minutes

将结果限制为仅相差小于10分钟的行,请使用:

select ...
from ...
where d.received_date - d.send_date <= interval '10' minute