sql >> Database >  >> RDS >> PostgreSQL

Bereken de som van de tijdkolom in PostgreSql

Wat je wilt, is niet mogelijk. Maar je hebt waarschijnlijk de time verkeerd begrepen typ :het vertegenwoordigt een nauwkeurig tijdstip op een dag. Het heeft niet veel zin om twee (of meer) keer toe te voegen. bijv. '14:00' + '14:00' = '28:00' (maar er zit geen 28ste uur in een dag).

Wat je waarschijnlijk wilt, is interval (die tijdsintervallen vertegenwoordigt; uren, minuten of zelfs jaren). sum() ondersteunt interval argumenten.

Als je intervallen gebruikt, is het zo simpel:

SELECT sum(interval_col) FROM my_table;

Hoewel, als je je aan de time houdt, type (maar je hebt geen reden om dat te doen), je kunt het casten naar interval om ermee te rekenen:

SELECT sum(time_col::interval) FROM my_table;

Maar nogmaals, het resultaat is interval , omdat time waarden mogen het 24e uur van een dag niet overschrijden.

Opmerking :PostgreSQL doet zelfs de cast voor je, dus sum(time_col) zou ook moeten werken, maar het resultaat is interval in dit geval ook.



  1. Snelste manier om een ​​miljoen rijen in Laravel 5.7 in te voegen/bij te werken

  2. Compileerfout:verwachte functie of variabele in VBA voor toegang

  3. Totale hoeveelheid apparatuur berekenen voor een datumbereik

  4. MySQL-fout met dubbele sleutel veroorzaakt een gedeelde vergrendeling op het dubbele indexrecord?