sql >> Databasteknik >  >> RDS >> PostgreSQL

Beräkna summan av tidskolumnen i PostgreSql

Vad du vill, är inte möjligt. Men du har förmodligen missförstått time typ :den representerar en exakt tidpunkt på en dag. Det är inte mycket meningsfullt att lägga till två (eller fler) gånger. t.ex. '14:00' + '14:00' = '28:00' (men det finns inga 28:e timmen på en dag).

Det du förmodligen vill ha är interval (som representerar tidsintervall; timmar, minuter eller till och med år). sum() stöder interval argument.

Om du använder intervaller är det bara så enkelt:

SELECT sum(interval_col) FROM my_table;

Fast om du håller dig till time typ (men du har ingen anledning att göra det), kan du casta den till interval att räkna med det:

SELECT sum(time_col::interval) FROM my_table;

Men återigen, resultatet blir interval , eftersom time värden får inte överstiga den 24:e timmen på en dag.

Obs :PostgreSQL kommer till och med att göra casten åt dig, så sum(time_col) borde fungera också, men resultatet är interval även i detta fall.



  1. Tomcat JDBC MySQL ClassNotFoundException

  2. Mysql kan inte ansluta till lokal server via uttaget på Amazon EC2

  3. Konstiga karaktärer i mysql dbase

  4. PHP PDO vs normal mysql_connect