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

Aru*_*run 101 postgresql

我有一个PostgreSQL 8.32 timestamp列的表.我想timestamps在几秒钟内得到它们之间的区别.你能帮我解决一下这个问题吗?

TableA
(
  timestamp_A timestamp,
  timestamp_B timestamp
)
Run Code Online (Sandbox Code Playgroud)

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

Igo*_*nko 196

尝试: 

SELECT EXTRACT(EPOCH FROM (timestamp_B - timestamp_A))
FROM TableA
Run Code Online (Sandbox Code Playgroud)

详情:提取.

  • 非常感谢你的回答.有效 !!!在上面的查询中,我们缺少一个右括号.但我已经弄清楚了.非常感谢您的快速回复. (2认同)

Clo*_*eto 24

select age(timestamp_A, timestamp_B)
Run Code Online (Sandbox Code Playgroud)

回答伊戈尔的评论:

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
Run Code Online (Sandbox Code Playgroud)

  • 如果我理解正确,他希望"以秒为单位获得这些时间戳之间的差异".并且"它应该​​包括小时,分钟等"意味着它必须是完整的差异,如"10:25:30 - 10:15:25 = 605秒".我的猜测 - 他用`EXTRACT(SECONDS FROM ...)`并得到了`10:25:30 - 10:15:25 = 5秒 (5认同)