Как узнать, сколько раз ИНТЕРВАЛ включает в себя еще один? - PullRequest
0 голосов
/ 30 января 2019

У меня есть два 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?

1 Ответ

0 голосов
/ 30 января 2019

Вам необходимо нормализовать оба интервала, например, выделив количество секунд, а затем разделив их:

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