Estoy tratando de convertir minutos que están en número entero a intervalo en postgres
¿Hay alguna función que me ayude a convertirlo en intervalo o debería haberlo dividido por 60 y obtener el resultado final?
20 minutes will be like 00:20:00 as resultLa forma más rápida es con 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)Entonces se ve así (según lo sugerido por @Teddy)
SELECT make_interval(mins => 20);o,
SELECT make_interval(0,0,0,0,0,20); No quiere decir que sea el más limpio, si la velocidad no es un problema, prefiero el * método @a_horse_with_no_name mencionado
SELECT 20 * '1 minute'::interval;puedes concatenar ese entero con ' 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 msActualizar :
O: interval '1' minute * n como dice a_horse_with_no_name
En el caso de que intente insertar datos en una columna de interval , puede usar segundos enteros y PostgreSQL lo convertirá en un intervalo.