PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Calcular a soma da coluna de tempo no PostgreSql


O que você quer, não é possível. Mas você provavelmente não entendeu a time digite :representa um ponto de tempo preciso em um dia. Não faz muito sentido somar duas (ou mais) vezes. f.ex. '14:00' + '14:00' = '28:00' (mas não há 28 horas em um dia).

O que você provavelmente quer é interval (que representa intervalos de tempo; horas, minutos ou mesmo anos). sum() suporta interval argumentos.

Se você usar intervalos, é simples assim:
SELECT sum(interval_col) FROM my_table;

Embora, se você seguir o time type (mas você não tem motivo para fazer isso), você pode convertê-lo em interval para calcular com ele:
SELECT sum(time_col::interval) FROM my_table;

Mas, novamente, o resultado será interval , porque time os valores não podem exceder a 24ª hora de um dia.

Observação :O PostgreSQL até fará a conversão para você, então sum(time_col) deve funcionar também, mas o resultado é interval neste caso também.