2017-04-27 4 views
5

Ich versuche Minuten zu konvertieren, die in integer sind in Postgreswie integer Minuten konvertieren in Postgres Intervall

Ist ihre irgendeine Funktion Intervall, das mir zu konvertieren helfen Intervall oder soll ich es teilen muß von 60 und bekommen das Endergebnis

20 minutes will be like 00:20:00 as result 
+1

Sie sollten Flagge dieses und es auf [dba.se] –

Antwort

1

Sie diese Zahl mit ' minutes' verketten kann:

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 

aktualisieren:

Oder: interval '1' minute * n wie a_horse_with_no_name sagt

+0

Dank Vao Tsun bewegen, es funktioniert hat für mich –

+6

Oder: 'interval '1' minute * n' –

5

Der schnellste Weg ist mit 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) 

So sieht es so aus (wie durch @Teddy vorgeschlagen)

SELECT make_interval(mins := 20); 

oder

SELECT make_interval(0,0,0,0,0,20); 

nicht zu sagen, das ist die sauberste, wenn die Geschwindigkeit ist nicht ein Problem ziehe ich die * Methode @a_horse_with_no_name

erwähnt
SELECT 20 * '1 minute'::interval; 
+0

Warum nicht einfach' make_interval (mins: = 20) '? – Teddy

+0

@Teddy gute Korrektur, ich habe das zur Antwort hinzugefügt –

Verwandte Themen