TreasureDataで今月の1日を取得する
4274 ワード
概要
データ抽出で1年間とかをする場合、今月の1日を取得してそこからマイナス365日の期間を取得するようにしたかったので調べた内容を記載しておきます。
今月の1日の取得方法
下記のようにしたら取得できました。
SELECT
TD_TIME_FORMAT(
TD_DATE_TRUNC('month', TD_SCHEDULED_TIME()),
'yyyy-MM-dd',
'JST'
)
;
結果
2018-04-01
今月1日から365日マイナスした期間を取得する
SELECT
-- 開始日(今月1日からマイナス365日した日付)
TD_TIME_FORMAT(
TD_TIME_ADD(TD_DATE_TRUNC('month', TD_SCHEDULED_TIME()), '-365d'),
'yyyy-MM-dd',
'JST'
) AS s,
-- 終了日(今月1日)
TD_TIME_FORMAT(
TD_DATE_TRUNC('month', TD_SCHEDULED_TIME()),
'yyyy-MM-dd',
'JST'
) AS e
;
結果
| s | e |
| 2017-04-01 | 2018-04-01 |
先月の末日から365日マイナスした期間をWHERE条件に指定する
「2018/04/24 PM12:00」で実行すると 「2017-04-01 <= time < 2018-04-01」の期間が取得できます。
※ TD_TIME_RANGEは、開始日は含むが終了日は含まないため、今月1日を指定すると先月末日までとなる。
SELECT
MIN(time) AS min,
MAX(time) AS max
FROM
hoge
WHERE
TD_TIME_RANGE(
-- 判定対象カラム
time,
-- 開始日(今月1日からマイナス365日した日付)
TD_TIME_ADD(TD_DATE_TRUNC('month', TD_SCHEDULED_TIME()), '-365d'),
-- 終了日(今月1日) ※期間には含まれない
TD_DATE_TRUNC('month', TD_SCHEDULED_TIME())
)
;
以上です。
参考サイト
Author And Source
この問題について(TreasureDataで今月の1日を取得する), 我々は、より多くの情報をここで見つけました https://qiita.com/reflet/items/54f7c05e1b873bcbf409著者帰属:元の著者の情報は、元の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 .