sql >> Database teknologi >  >> RDS >> PostgreSQL

Beregn summen af ​​tidskolonnen i PostgreSql

Hvad du vil, er ikke muligt. Men du har sandsynligvis misforstået time type :det repræsenterer et præcist tidspunkt på en dag. Det giver ikke meget mening at tilføje to (eller flere) gange. f.eks. '14:00' + '14:00' = '28:00' (men der er ingen 28. time på et døgn).

Det, du sandsynligvis vil have, er interval (som repræsenterer tidsintervaller; timer, minutter eller endda år). sum() understøtter interval argumenter.

Hvis du bruger intervaller, er det bare så enkelt:

SELECT sum(interval_col) FROM my_table;

Selvom du holder dig til time type (men du har ingen grund til at gøre det), kan du caste det til interval at regne med det:

SELECT sum(time_col::interval) FROM my_table;

Men igen, resultatet vil være interval , fordi time værdier må ikke overstige 24. time på et døgn.

Bemærk :PostgreSQL vil endda lave castet for dig, så sum(time_col) burde også virke, men resultatet er interval også i dette tilfælde.



  1. mysqli multi_query efterfulgt af forespørgsel

  2. mySQL-undtagelse:Kan ikke oprette forbindelse til nogen af ​​de angivne MySQL-værter. gennem C#

  3. Sådan multipliceres værdier ved hjælp af SQL

  4. ORA-01002:hent ud af rækkefølge