1. ホーム
  2. sql

PostgreSQLのタイムスタンプの差分(時間)

2023-07-12 02:17:18

質問

このような TIMESTAMPDIFF() PostgreSQL に相当するものはありますか?

私は、2つのタイムスタンプを引き算して、postgresqlの INTERVAL . 私はただ、2つのタイムスタンプの差をINTで表した時間単位で知りたいだけです。

私はこのようにMySQLでこれを行うことができます。

TIMESTAMPDIFF(HOUR, links.created, NOW())

2つのタイムスタンプの差を時間単位で整数で表現してほしいのです。

解決策は私のために動作します。

SELECT "links_link"."created",
"links_link"."title",
(EXTRACT(EPOCH FROM current_timestamp - "links_link"."created")/3600)::Integer AS "age" 
FROM "links_link"

どのように解決するのですか?

最初に出てくるもの

EXTRACT(EPOCH FROM current_timestamp-somedate)/3600

きれいではないかもしれませんが、道路を塞ぎません。間隔による間隔の分割が定義されていれば、よりきれいかもしれません。

編集 0より大きくしたい場合は、absかgreatin(...,0)を使ってください。どっちがいい?

Edit++ を使わなかった理由は ageage を一つの引数で、ドキュメントを引用しています。 current_date (午前0時)から減算します。 . つまり、午前0時に実行しない限り、正確な年齢を得ることはできません。今、こちらは午前1時近くです。

select age(current_timestamp);
       age        
------------------
 -00:52:40.826309
(1 row)