【问题标题】:How to find out how many times a INTERVAL includes another one?如何找出一个 INTERVAL 包含另一个 INTERVAL 的次数?
【发布时间】:2019-06-23 13:18:58
【问题描述】:

我有两个TIMESTAMP 和一个INTERVAL。我想知道时间间隔适合时间戳之间的间隔多少次。

减去两个TIMESTAMP 得到INTERVAL

SELECT TIMESTAMP '2019-01-30' -  TIMESTAMP '2019-01-29';

->
0 years 0 mons 1 days 0 hours 0 mins 0.00 secs

但我不能进行INTERVAL / INTERVAL 划分。这在异常中运行:

SELECT (TIMESTAMP '2019-01-30' -  TIMESTAMP '2019-01-29') / INTERVAL '1 hour';

我想最后有一个整数。 24 用于前面的示例。有没有办法在 PostgreSQL 中处理它?

【问题讨论】:

    标签: sql postgresql datetime timestamp intervals


    【解决方案1】:

    您需要对两个间隔进行标准化,例如通过提取秒数然后除以它们:

    SELECT extract(epoch from (TIMESTAMP '2019-01-30' -  TIMESTAMP '2019-01-29')) / extract(epoch from INTERVAL '1 hour');
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-05-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-28
      • 1970-01-01
      相关资源
      最近更新 更多