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
答えてくれてありがとう。出来た !!!上記のクエリでは、閉じかっこがありません。しかし、私はそれを理解しました。お返事ありがとうございます。
アルン

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 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
@イゴールそれはあまり明確ではありませんが、あなたがそれを言う今、私はあなたがおそらく正しいと思います。
Clodoaldo Neto

@Clodoaldo:Igorが述べた出力が必要です。秒単位で完全な差が必要です。
アルン

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

誰かが抽出を使用して問題を抱えている場合。


タイムゾーンのあるタイムスタンプでも機能しません。
ロドルフォ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.