でHiveクエリを書くとき - TD_TIME_ADDを利用しよう
4710 ワード
はじめに
Treasure DataはHiveの関数以外に独自関数を。。。(略
ドキュメントを見れば、ここから下は不要だ。
TD_TIME_ADD
以前、Treasure Dataで時間の範囲を指定するの大事!って記事を書きましたが、TD_TIME_RANGEを利用するときに1日分とか、1週間分とかTD_SCHEDULED_TIME()- 3600*24*7とか書くのダサい!見づらい!ということで、TD_TIME_ADDというのが用意されています。
Signature
long TD_TIME_ADD(int/long/string time,
string duration
[, string default_timezone = 'UTC'])
第一引数で指定した時間を第二引数で指定した期間分増減してくれます。
この関数の素晴らしいところは第一引数をunixtimeでも文字列(ig. "2013-01-01" or "2013-01-01 07:00:00")でも指定できることです。
第二引数に設定できる値です。
指定法 | 説明 | 使用例 |
---|---|---|
Nd | N日後 | "1d":1日後,"2d": 2日後,"30d": 30日後 |
-Nd | N日前 | "-1d":1日前,"-2d": 2日前,"-30d": 30日前 |
Nh | N時間後 | "1h":1時間後,"2h": 2時間後,"48h": 48時間後 |
-Nh | N時間前 | "-1h":1時間前,"-2h": 2時間前,"-48h": 48時間前 |
Nm | N分後 | "1m":1分後,"2m": 2分後,"90m": 90分後 |
-Nm | N分前 | "-1m":1分前,"-2m": 2分前,"-90m": 90分前 |
Ns | N秒後 | "1s":1秒後,"2s": 2秒後,"90s": 90秒後 |
-Ns | N秒前 | "-1s":1秒前,"-2s": 2秒前,"-90s": 90秒前 |
長さが確定していない年と月はサポートしていません。
第三引数はタイムゾーンを指定します。日本時間は"JST"と書きます。
例
"2013-01-01"から1日後までを指定。
SELECT ... WHERE TD_TIME_RANGE(time,
"2013-01-01",
TD_TIME_ADD("2013-01-01", "1d"),"JST")
TD_SCHEDULED_TIME()の1日前までを指定。
SELECT ... WHERE TD_TIME_RANGE(time,
TD_TIME_ADD(TD_SCHEDULED_TIME(), "-1d"),
TD_SCHEDULED_TIME(),"JST")
まとめ
これでTD_TIME_RANGEでの範囲指定がさらに楽になりますね!
Author And Source
この問題について(でHiveクエリを書くとき - TD_TIME_ADDを利用しよう), 我々は、より多くの情報をここで見つけました https://qiita.com/KamekoKameKame/items/3db8a9ee10e4564c13ef著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .