Duração de tempo no Postgresql - tipo de dado INTERVAL
O PostgreSQL conta com um tipo de dado muito útil chamado INTERVAL. Ele representa uma quantidade de tempo, em outras palavras, uma duração de um evento no tempo. Quanto tempo uma viagem durou? Duas horas, vinte cinco minutos, trinta segundos, cem milisegundos e dois nanosegundos. É esse tipo de dado que o INTERVAL serve para guardar.
Ao subtrair dois dados do tipo TIMESTAMP ou TIMESTAMPTZ o PostgreSQL retorna um INTERVAL, ou seja, quanto tempo existe entre aquelas duas timestamps, a duração daquele evento.
Referências
Documentação oficial do PostgreSQL sobre tipos de dados que representam tempo
https://www.postgresql.org/docs/current/functions-datetime.html
Ótimo tutorial do PostgreSQLTutorial sobre o INTERVAL
https://www.postgresqltutorial.com/postgresql-interval/