Posted at

Bigqueryでtimestampで当日日付(JST)を指定する

More than 3 years have passed since last update.

Bigqueryで当日を条件に絞るときにハマったのでメモ。

条件のとこだけ記載。対象のカラム名は「time」、型はtimestamp型とします。

timestamp型でその日だけを指定する方法、簡単にできそうで意外とハマりました。

ついでに、BigQueryに入っているtimestamp型のデータは基本UTCなので、それをJSTに変換しています。

※下記サイトを参考にいたしました。

http://itnote-ichi5.com/post-bigquery-utc-jst/


当日

WHERE

STRFTIME_UTC_USEC(TIMESTAMP_TO_USEC(time) + 32400000000, '%Y-%m-%d') = CURRENT_DATE()

ちなみに、1日前はこちら。


前日

WHERE

STRFTIME_UTC_USEC(TIMESTAMP_TO_USEC(time) + 32400000000, '%Y-%m-%d') = DATE(DATE_ADD(CURRENT_TIMESTAMP(),-1,"DAY"))

DATE_ADDでDAYを-1で指定しています。あとは同じ。

n日前、後だったらこの数字をいじればよさそう。