PostgreSQL에서 초 단위의 타임 스탬프 차이 찾기


127

PostgreSQL 8.32 개의 timestamp열 이있는 테이블이 있습니다. 나는 이것들 사이의 차이 timestamps를 몇 초 만 에 얻고 싶습니다 . 이 작업을 수행하는 방법을 도와 주시겠습니까?

TableA
(
  timestamp_A timestamp,
  timestamp_B timestamp
)

나는 (timestamo_B - timestamp_A)초 단위 와 같은 것을 얻어야합니다 ( 초의 차이뿐만 아니라 시간, 분 등을 포함해야 함) .

답변:


238

시험: 

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

세부 정보 : EXTRACT .


3
답변 해 주셔서 감사합니다. 작동했습니다 !!! 위 쿼리에서 닫는 괄호가 없습니다. 그러나 나는 그것을 알아 냈습니다. 빠른 답장을 보내 주셔서 감사합니다.
Arun

30
select age(timestamp_A, timestamp_B)

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

그것은 일을하지 않을 것입니다. 그것은 것 Subtract arguments, producing a "symbolic" result that uses years and months입니다. 초 단위로 차이를주지 않습니다.
Igor Romanchenko

@Igor 초를 포함한 결과로 업데이트되었습니다. OP는 초뿐만 아니라 분, 시간 등을 원합니다
Clodoaldo Neto

5
내가 그를 올바르게 이해했다면 그는 to get the difference between these timestamps in seconds. 그리고 it should include hours, minutes etc그것은 10:25:30 - 10:15:25 = 605 seconds. 내 추측 – 그는 사용 EXTRACT(SECONDS FROM ...)하고 얻었습니다10:25:30 - 10:15:25 = 5 seconds
Igor Romanchenko

1
@Igor 그것은 명확하지 않지만 이제는 당신이 옳다고 생각합니다.
Clodoaldo Neto

@Clodoaldo : Igor가 언급 한 출력이 필요합니다. 초 단위로 완전한 차이가 필요합니다.
Arun

0
SELECT (cast(timestamp_1 as bigint) - cast(timestamp_2 as bigint)) FROM table;

누군가가 extract를 사용하는 데 문제가있는 경우 .


시간대가있는 타임 스탬프에서도 작동하지 않습니다.
Rodolfo
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.