38 Stimmen

PostgreSQL - Wie konvertiert man Sekunden in einem numerischen Feld in HH:MM:SS

Ich bin neu in PostgreSQL (ich habe MS SQL seit vielen Jahren verwendet) und muss eine numerische Spalte, die eine Zeit in Sekunden enthält, in das Format HH:MM:SS konvertieren.

Ich habe gegoogelt und Folgendes gefunden to_char(interval '1000s', 'HH24:MI:SS') funktioniert, also versuche ich, dies mit meinem Feldnamen zu verwenden:

to_char(fieldname, 'HH24:MI:SS') ergibt einen Fehler cannot use "S" and "PL"/"MI"/"SG"/"PR" together

to_char(fieldname::interval, 'HH24:MI:SS') ergibt einen Fehler cannot cast type numeric to interval

Kann mir jemand zeigen, wo ich falsch liege?

0 Stimmen

fieldname eine ganze Zahl ist? Und welche Ausgabe erwarten Sie, wenn Sie ein Intervall haben, das größer als ein Tag ist?

1 Stimmen

@leonbloy: HH24 kann trotz seines Namens über 24 hinausgehen.

0 Stimmen

@Quassnoi: Richtig. Ich habe mich nur gefragt, ob es das ist, was der Poster wollte.

59voto

Quassnoi Punkte 396418
SELECT  TO_CHAR('1000 second'::interval, 'HH24:MI:SS')

oder, in Ihrem Fall

SELECT  TO_CHAR((mycolumn || ' second')::interval, 'HH24:MI:SS')
FROM    mytable

11 Stimmen

O mycolumn * '1 second'::interval was verhindert, dass das Textformat immer wieder repariert wird (obwohl es in diesem Fall keinen großen praktischen Unterschied macht)

0 Stimmen

@Quassnoi ist es möglich wenn ich 1:20:30s bekomme dann in 80:30 umzuwandeln bitte helfen Sie mir

0 Stimmen

@AnkitDoshi: Bitte stellen Sie diese Frage als weitere Frage.

37voto

Nilesh Yadav Punkte 289

So konvertieren Sie Sekunden in HH:MM:SS

SELECT 120 * interval '1 sec';

Sie erhalten 00:02:00

Umrechnung von Minuten in HH:MM:SS

SELECT 120 * interval '1 min'; 

Sie erhalten 02:00:00

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X