プログラマーな日々

I'm a Cloud Architect and Developer, and a trainee of the network engineer training course. I have certified by AWS and Cisco (SAA/SOA/DVA/CCNA). I especially have highly motivated to reduce toils.

【PostgreSQL】経過日数を取得する

PostgreSQLはDATEDIFFをサポートしていないので、調べました。

テストデータ作成

CREATE TEMP TABLE test AS SELECT TIMESTAMP '2019-01-08 10:00:00' AS created_at;

検証

TIMESTAMP型で引き算すると、INTERVAL型で結果を取得できます。

SELECT CURRENT_TIMESTAMP - created_at AS elapsed FROM test;
30 days 20:52:11.601642

INTERVAL型から日数を取り出すには、EXTRACTを使います。

SELECT EXTRACT(DAY FROM (CURRENT_TIMESTAMP - created_at)) AS elapsed FROM test
30