Как преобразовать целые числа в интервал в postgres
Я пытаюсь преобразовать минуты, которые находятся в целочисленном интервале, в интервале в postgres
Является ли их любая функция, которая поможет мне преобразовать ее в интервал или я должен разделить ее на 60 и получить окончательный результат
20 minutes will be like 00:20:00 as result
Ответы
Ответ 1
Самый быстрый способ с make_interval
make_interval(years int DEFAULT 0, months int DEFAULT 0, weeks int DEFAULT 0, days int DEFAULT 0, hours int DEFAULT 0, mins int DEFAULT 0, secs double precision DEFAULT 0.0)
Так выглядит это (как предложено @Teddy)
SELECT make_interval(mins => 20);
или же,
SELECT make_interval(0,0,0,0,0,20);
Не сказать, что самый чистый, если скорость не проблема, я предпочитаю упомянутый метод *
@a_horse_with_no_name
SELECT 20 * '1 minute'::interval;
Ответ 2
вы можете указать, что целое число с ' minutes'
:
t=# with i as (
select 20::int n
)
select concat(n,' minutes')::interval
from i;
concat
----------
00:20:00
(1 row)
Time: 1.220 ms
Обновление
Или: interval '1' minute * n
как a_horse_with_no_name говорит
Ответ 3
В случае, если вы пытаетесь вставить данные в interval
столбец, вы можете использовать целочисленные секунды, и PostgreSQL преобразует их в интервал.