PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Berechnen Sie die Zeitsummenspalte in PostgreSql

Was Sie wollen, ist nicht möglich. Aber Sie haben wahrscheinlich die time falsch verstanden Typ :Es repräsentiert einen genauen Zeitpunkt an einem Tag. Es macht nicht viel Sinn, zwei (oder mehr) Mal hinzuzufügen. z.B. '14:00' + '14:00' = '28:00' (aber es gibt keine 28 Stunden am Tag).

Was Sie wahrscheinlich wollen, ist interval (was Zeitintervalle darstellt; Stunden, Minuten oder sogar Jahre). sum() unterstützt interval Argumente.

Wenn Sie Intervalle verwenden, ist es so einfach:

SELECT sum(interval_col) FROM my_table;

Allerdings, wenn man sich an die time hält type (aber Sie haben keinen Grund dazu), können Sie es in interval umwandeln damit rechnen:

SELECT sum(time_col::interval) FROM my_table;

Aber auch hier ist das Ergebnis interval , weil time Werte dürfen die 24. Stunde eines Tages nicht überschreiten.

Hinweis :PostgreSQL übernimmt sogar die Umwandlung für Sie, also sum(time_col) sollte auch funktionieren, aber das Ergebnis ist interval auch in diesem Fall.