J'essaye de convertir les minutes qui sont en entier en intervalle dans postgres
Est-ce que leur fonction m'aidera à la convertir en intervalle ou devrais-je la diviser par 60 et obtenir le résultat final?
20 minutes will be like 00:20:00 as result
Le moyen le plus rapide est avec 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)
Donc, il ressemble à ceci (comme suggéré par @Teddy)
SELECT make_interval(mins := 20);
ou,
SELECT make_interval(0,0,0,0,0,20);
Pour ne pas dire que ce soit le plus propre, si la vitesse n'est pas un problème, je préfère la méthode *
@a_horse_with_no_name indiquée
SELECT 20 * '1 minute'::interval;
vous pouvez concatter cet entier avec ' 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
Mettre à jour :
Ou: interval '1' minute * n
comme dit un_horse_with_no_name
Dans le cas où vous essayez d'insérer des données dans une colonne interval
, vous pouvez utiliser des secondes entières et PostgreSQL ™ les convertira en un intervalle.