sql >> Base de Datos >  >> RDS >> PostgreSQL

Calcule la suma de la columna de tiempo en PostgreSql

Lo que quieres, no es posible. Pero probablemente no entendiste el time escribir :representa un punto de tiempo preciso en un día. No tiene mucho sentido sumar dos (o más) veces. p.ej. '14:00' + '14:00' = '28:00' (pero no hay 28 horas en un día).

Lo que probablemente quieras es interval (que representa intervalos de tiempo; horas, minutos o incluso años). sum() soporta interval argumentos.

Si usa intervalos, es así de simple:

SELECT sum(interval_col) FROM my_table;

Aunque, si te atienes al time type (pero no tienes motivos para hacerlo), puedes convertirlo en interval para calcular con ella:

SELECT sum(time_col::interval) FROM my_table;

Pero nuevamente, el resultado será interval , porque time los valores no pueden exceder la hora 24 en un día.

Nota :PostgreSQL incluso hará la conversión por ti, así que sum(time_col) debería funcionar también, pero el resultado es interval en este caso también.