TD_TIME_PARSEについて


https://support.treasuredata.com/hc/en-us/articles/360001450828-Supported-Presto-UDFs#TD_TIME_PARSE
prestoエンジンでサポートされているTD関数について。(部分意訳・要約)

TD_TIME_PARSEとは

タイムストリングをUNIXタイムスタンプに変換するもの

利用背景

大量データ前提のDBに対して時間を指定しないと、クエリの実行に時間がかかる
where条件にtimeカラムで特定日時を指定する時などに使用

構文

long TD_TIME_PARSE(string time
                   [, string default_timezone = 'UTC'])

# 28日前の月初を指定
WHERE time = TD_TIME_PARSE(TD_TIME_FORMAT(TD_TIME_ADD(UNIX_TIMESTAMP(), '-28d'), 'yyyy-MM-01'))

ポイント

タイムストリング形式は複数パターンで指定可能

文字列のyyyy-MM-dd
文字列のyyyy/mm/dd HH:mm:ss
文字列のタイムスタンプ
文字列のタイムスタンプとタイムゾーン

雑感

この指定では1ヶ月前の月初という仕様を実行日によっては満たせない