LoginSignup
2
2

More than 5 years have passed since last update.

RedshiftのDATEDIFFをPostgreSQLでテストする場合

Posted at

Redshift DATEDIFFとPostgreSQLの互換

Redshiftで時間の差分を取得する場合、DATEDIFF関数を利用する。
PostgreSQLにはDATEDIFF関数がない。

Redshit DATEDIFF関数

Redshift
DATEDIFF ( datepart, expression1, expression2)

datepartには、年、月、日、時、分、秒などの特定の粒度を指定し、expression1, expression2には日付の列、または、timestampの式を指定する。
DATEDIFFの結果は、expression2 - expression1の結果が返る。
* expression2 > expression1 ⇒ 正
* expression2 < expression1 ⇒ 負

PostgreSQL で日付データの差分を取得する方法

そもそもPostgreSQLDATEDIFF関数はない。
しかし、PostgreSQLでは、timestampの式の差を求めることで差分を知ることができる。
timestamp1 - timestamp2

テストでの対応

本番では、RedshiftのSQLではDATEDIFFを使用していて、テストなどでローカル環境にRedshiftと同じスキーマでテストを実行したい場合、
RedshiftのDATEDIFF関数部分をtimestampの引き算で置き換える処理が必要になる。

今ひとつな対応に思えるので、違うアプローチを持っている方がいれば、教えて下さい!

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2