トレジャーデータ で高速検索を行う場合は、
パーティションの切られているtimeを利用する。また、日付関数はUDFが用意されており、
それを使うことで効率よく処理を行える。
対象日付のレコードを抽出する
SELECT * FROM TABLE1 WHERE TD_TIME_RANGE(time, TD_TIME_ADD(TD_SCHEDULED_TIME(), '-1d'), TD_SCHEDULED_TIME(), 'jst')
対象範囲日付分のデータを取得するパターン1
SELECT
*
FROM
TABLE1
WHERE
TD_TIME_RANGE
(
time
, TD_TIME_FORMAT(TD_TIME_ADD(TD_SCHEDULED_TIME(), '-1d'), 'yyyy-MM-dd 00:00:00', 'JST')
, TD_TIME_FORMAT(TD_SCHEDULED_TIME(), 'yyyy-MM-dd 00:00:00', 'JST')
, 'JST'
)
対象範囲日付分のデータを取得するパターン2
SELECT
*
FROM
TABLE1
WHERE
TD_TIME_RANGE
(
time
, TD_TIME_ADD(TD_TIME_PARSE(TD_TIME_FORMAT(TD_SCHEDULED_TIME(),'yyyy-MM-dd')), '-5d', 'JST')
, TD_TIME_ADD(TD_TIME_PARSE(TD_TIME_FORMAT(TD_SCHEDULED_TIME(),'yyyy-MM-dd')), '-4d', 'JST')
, 'JST'
)
対象範囲の日付を明示的に指定する方法
SELECT * FROM TABLE1 WHERE TD_TIME_RANGE(time,'2019-01-01 00:00:00','2019-02-01 01:00:00','JST')
日付の差分を取得する
-- DATE型かTIMESTAMP型しかDATE_DIFFで使えないのでCAST出方変換を行う必要がある
SELECT
*
FROM
TABLE1
WHERE
DATE_DIFF('day', CAST(created_at AS TIMESTAMP), CAST(updated_at AS TIMESTAMP))


