PrestoPrestoで日付の処理に躓いたのでメモ。functions)が多いから、HiveにしろPrestoにしろ結構躓いたりするんですよね。公式のマニュアルページが手放せません。docs.treasuredata.com今回はこのなかで初心者やSQLユーザーが間違いやすい部分と、これを組み合わせた日付の処理をいくつか書きます。WHERE句での日付の範囲指定SQLを使ったことがある人が最初に「あれ?」って思うのはここだと思います。'2016-01-02','JST')と書きます。日付の取得これもUDFでやります。このとき、出力されるのは2016-01-01でvarchar型になります。日付を取ったら曜日が欲しい時もあるでしょう。これもSQLのDATE_PART関数は使えないので別の方法でやります。Prestoでは、dow(timestamp)を使うのですが、ここで一つ問題があります。カラムをそのまま持ってくるわけにはいきません。'JST')だけではvarchar型になってしまうのでだめです。そこで変換作業をします。変換するため、TD_TIME_PARSE関数を使います。00:00::00'に対しては1451574000が返ってきます。これはbigint型です。timestamp型になってません。直すのはFROM_UNIXTIME関数です。'JST')))これでtimestamp型にになったので、ようやくdow関数で曜日を取得できます。00:00::00'に対しては金曜日の5が返ってきます。1月3日と1月1日の差は2日間です。これをPrestoでやるのにもUDFがあります。date_diff関数です。これはtimestamp型またはdate型にのみ使えるので、CAST関数で変換します。2第一引数で指定した(ここではday)の形式で算出してくれます。Documentationをご覧ください。ありますが、いったんこの辺で。R")を読んだので感想を書く待望の『R言語徹底解説』が届きました。データ解析周りを中心に、プログラミング全般で学んだことを記していく個人的な備忘録。合同企画回)」に参加しました。reserved.はてなブログをはじめよう!songcunyouzaiさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。