как преобразовать целочисленные минуты в интервал в postgres
Я пытаюсь преобразовать минуты, которые целочисленны, в интервал в postgres
Это их функция, которая поможет мне преобразовать его в интервал или я должен разделить ее на 60 и получить конечный результат
20 minutes will be like 00:20:00 as result
2 ответов
самый быстрый способ с 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;
вы можете объединить это целое число с ' 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 говорит