LoginSignup
3
1

More than 5 years have passed since last update.

Google BigQuery と Treasure Data Hive Query での期間の指定方法

Posted at

日時指定はどの条件でクエリを叩くときも使うけれど、毎回忘れて調べているのでメモ

Google BigQuery

log20170420みたいに毎日のログが入っているとする
ref: https://cloud.google.com/bigquery/docs/wildcard-tables

昨日から一週間分のデータを解析したい

BigQuery
#standardSQL
SELECT
    *
FROM
  `dataset.log*`
WHERE
  _TABLE_SUFFIX BETWEEN FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE('Asia/Tokyo'), INTERVAL 7 DAY)) AND FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE('Asia/Tokyo'), INTERVAL 1 DAY))
;

Treasure Data Hive Query

ref: https://docs.treasuredata.com/articles/udfs

昨日から一週間分のデータを解析したい

TD_SCHEDULED_TIME()NOW()と違ってスケジューラーをセットした時間であることがミソ

TD_HiveQuery
SELECT 
  *
  TD_TIME_FORMAT(time,
    'yyyy-MM-dd',
    'JST') AS date
FROM
  log
WHERE
  TD_TIME_RANGE(
    time,
    TD_TIME_ADD(
      TD_DATE_TRUNC('day', TD_SCHEDULED_TIME(), 'JST'),
      '-7d', 
      'JST'
    ),
    TD_TIME_ADD(
      TD_DATE_TRUNC('day', TD_SCHEDULED_TIME(), 'JST'),
      '-1d', 
      'JST'
    ),
    'JST'
  )
3
1
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
3
1