Encontre diferença entre carimbos de data e hora em segundos no PostgreSQL

127

Eu tenho uma mesa PostgreSQL 8.3com 2 timestampcolunas. Gostaria de obter a diferença entre estes timestampsem segundos. Poderia me ajudar como fazer isso?

TableA
(
  timestamp_A timestamp,
  timestamp_B timestamp
)

Preciso obter algo como (timestamo_B - timestamp_A)em segundos (não apenas a diferença entre segundos, deve incluir horas, minutos etc.) .

Uma corrida
fonte

Respostas:

238

Experimentar: 

SELECT EXTRACT(EPOCH FROM (timestamp_B - timestamp_A))
FROM TableA

Detalhes aqui: EXTRATO .

Igor Romanchenko
fonte
3
Muito obrigado pela resposta. Funcionou !!! Na consulta acima, falta um parêntese de fechamento. Mas eu descobri. Muito obrigado pela sua resposta rápida.
Arun
30
select age(timestamp_A, timestamp_B)

Respondendo ao comentário de Igor:

select age('2013-02-28 11:01:28'::timestamp, '2011-12-31 11:00'::timestamp);
              age              
-------------------------------
 1 year 1 mon 28 days 00:01:28
Clodoaldo Neto
fonte
Não fará o trabalho. Será Subtract arguments, producing a "symbolic" result that uses years and months. Não vai dar a diferença em segundos.
Igor Romanchenko
@Igor Atualizado com os resultados, incluindo segundos. O OP quer não apenas alguns segundos, mas também minutos, horas, etc.
Clodoaldo Neto
5
Se eu o entendi corretamente, ele quer to get the difference between these timestamps in seconds. E it should include hours, minutes etcsignifica que deve ser a diferença completa 10:25:30 - 10:15:25 = 605 seconds. Meu palpite - ele usou EXTRACT(SECONDS FROM ...)e conseguiu10:25:30 - 10:15:25 = 5 seconds
Igor Romanchenko
1
@ Igor Não está muito claro, mas agora que você diz isso, acho que provavelmente está certo.
Clodoaldo Neto
@Clodoaldo: Eu preciso da saída, como mencionado por Igor. Eu preciso da diferença total em segundos.
Arun
0
SELECT (cast(timestamp_1 as bigint) - cast(timestamp_2 as bigint)) FROM table;

Caso alguém esteja tendo um problema usando o extrato .

tausif
fonte
Também não funciona com registro de data e hora com fusos horários.
Rodolfo