世界基準の時間で入れようという気持ちが働いた結果、UTCでデータレイクに保存されていることがある。
ただ、集計で絞りたいときは大概日本時間なので、そういうときに書き換えるクエリ。方法論は色々あるけど直感的に書ける書き方。
前提条件
- STANDARD SQLです
( 補足:Google BigQueryの新機能 Standard SQLまとめ - Start Today Technologies TECH BLOG ) - 変換対象はTIMESTAMP , DATEはまた別
やり方
単純に比較したいだけなので、UTCに対し9時間加算する。
TIMESTAMP_ADD({{対象カラム}}, INTERVAL 9 HOUR)
ありがちな created_at
を絞り込みたい場合は以下の感じ。
(TIMESTAMP_ADD(created_at, INTERVAL 9 HOUR) >= TIMESTAMP('2018-4-01 0:00:00') AND TIMESTAMP_ADD(created_at, INTERVAL 9 HOUR) < TIMESTAMP('2018-05-01 0:00:00'))