LoginSignup
0
0

More than 5 years have passed since last update.

TreasureDataで前月とか前々月とか指定したい

Last updated at Posted at 2018-02-05

追記 ※以下のやり方はtime indexが使えないので結果的に無意味でした\(^o^)/

詳しいことは中の人のコメント参照で

TD_TIME_ADDはmonthで指定できない

http://docs.treasuredata.com/articles/udfs#tdtimeadd
どうやら月は28日だったり31日だったりと固定じゃないためできないらしい。
この問題は結構前から言われてますが、特にその後変化があるわけでもないようです。

代替案

TDがダメならHiveの関数を使えばいいじゃない、ということで
https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF
add_months()を使ってみる

うーん、パフォーマンスは上がりませんが、現状取り得る手法としては悪くないと思います。

SELECT
add_months(from_unixtime(time), -3) --前前前月

使うとしたらこんな感じでしょうか?

WHERE
TD_TIME_RANGE(time,add_months('2018-02-01', -3),NULL,'JST')
0
0
2

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
0
0