Architect's Log

I'm a Cloud Architect. I'm highly motivated to reduce toils with driving DevOps.

【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