如何找出一个 INTERVAL 包含另一个 INTERVAL 的次数?
How to find out how many times a INTERVAL includes another one?
我有两个 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 中处理它?
您需要对两个间隔进行标准化,例如通过提取秒数然后除以它们:
SELECT extract(epoch from (TIMESTAMP '2019-01-30' - TIMESTAMP '2019-01-29')) / extract(epoch from INTERVAL '1 hour');
我有两个 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 中处理它?
您需要对两个间隔进行标准化,例如通过提取秒数然后除以它们:
SELECT extract(epoch from (TIMESTAMP '2019-01-30' - TIMESTAMP '2019-01-29')) / extract(epoch from INTERVAL '1 hour');