この記事は何
TreasureDataには以下のようなTD_INTERVAL
という、直近の機関による絞り込みを行う関数が存在します。
SELECT *
FROM example_tables
WHERE TD_INTERVAL(time, '-30d/now', 'JST') -- 直近30日のデータを絞り込む
BigQueryにはこのような関数は存在しないため、BETWEEN
を用いてクエリを書く必要があります。
この時に、*_SUB
関数を使うと簡単に書けるよ、という記事です。
*_SUB
関数とは
*_SUB
関数とは、日時系の時間の引き算を行える関数です。
DATE
型、DATETIME
型、TIMESTAMP
型、色々な型に対応した関数が用意されています。
この*_SUB
関数を用いると、以下のような書き方で直近〇〇日のデータを出すことができます。
DATETIME
型を用いる場合は以下のように書けます。
SELECT *
FROM example_tables
WHERE time BETWEEN DATETIME_SUB(DATETIME_TRUNC(CURRENT_DATETIME('Japan'), DAY), INTERVAL 30 DAY) AND CURRENT_DATETIME('Japan') -- 直近30日のデータを絞り込む
クエリ内で用いているDATETIME_TRUNC
関数は、時間の丸め込みを行う関数です。