在PostgreSQL中找到时间戳之间的差异(以秒为单位)


127

我有PostgreSQL 8.32 timestamp列的表格。我想timestamps在几秒钟内得到这些之间的差异。您能帮我完成这项工作吗?

TableA
(
  timestamp_A timestamp,
  timestamp_B timestamp
)

我需要(timestamo_B - timestamp_A)在几秒钟内得到一些信息(不仅是几秒钟之间的差异,还应该包括小时,分钟等)

Answers:



30
select age(timestamp_A, timestamp_B)

回答伊戈尔的评论:

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更新了结果,包括秒。OP不仅要秒,而且要分钟,小时等
Clodoaldo Neto 2012年

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
伊戈尔·罗曼琴科

1
@Igor还不是很清楚,但是现在您说出来,我认为您可能是对的。
Clodoaldo Neto 2012年

@Clodoaldo:我需要Igor提到的输出。我需要几秒钟的全部差额。
阿伦(Arun)2012年

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

如果有人使用提取物有问题。


它也不能与带有时区的时间戳一起使用。
Rodolfo
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.