・指定した時間の範囲を生成するにはgentimesを使う。
・gentimesで生成した時間の範囲をmapコマンドに渡してループ処理する。
使用するシーン
通常1日は0時から始まり23:59:59までと考えるが、業務によって1日の始まりを0:00AM以外で規程することがある。
例えば2:00AMを1日の始まりとした場合、2015/08/01を2015/08/01 02:00:00 〜 2015/08/02 01:59:59として考える。
timechartで集計すると1日の始まりは0:00AMとなるので、期待する結果が得られない。
この時gentimesコマンドを使用すると1日の始まりを2:00AMと規程して、時間の範囲を作成することができる。unixtimeとhuman readableな時間が返る。
このうちstarttime、endtimeフィールドをトークンでmapコマンドに渡す事により、
各時間の範囲のサーチができる。
以下は5/25から7/25日のデータを25日を基点に集計したサンプル。(starttimeは)
最初の時間の範囲は5/25から6/24、2行目は6/25から7/24となっている。
上記のstarttimeフィールドとendtimeフィールドをmapコマンドにトークンで渡すと、
gentimesコマンドで取得した時間の範囲で集計している。
おわりに
mapコマンドにわたすトークンは時間でなくてもよいので、何かのリストを渡してループ処理したい場合など応用範囲は広いのではと思う。