DATETRUNC関数は指定した日時単位で日時を「切り捨て」、集計の粒度を揃える関数です。月初や週初など期間ベースの分析に非常に便利です。
目次
書き方・構文ルール|DAYやMONTHの切り捨て方法
基本構文は次の通りです。
DATETRUNC("単位", [日付フィールド])
例)本日を日単位で切り捨て(00:00:00に)
DATETRUNC("day", NOW())
切り捨て単位一覧|weekやquarterの挙動まとめ
単位 | 説明 | 注意点 |
---|---|---|
year | 年初(1月1日)に切り捨て | |
quarter | 四半期初に切り捨て | Q1=Jan-Mar、Q2=Apr-Jun… |
month | 月初(1日)に切り捨て | |
week | 週初に切り捨て(日曜または月曜) | デフォルト週の開始日は日曜(設定変更可) |
day | 日初(00:00)に切り捨て | |
hour | 時間の分以下を切り捨て | |
minute | 秒以下を切り捨て | |
second | 秒未満(ミリ秒など)は対象外 |
DATE型とDATETIME型の違い
- DATE型:日付のみ管理(例:2023-06-14)
- DATETIME型:日時情報含む(例:2023-06-14 14:30:00)
NOW()とTODAY()の違いと影響
- NOW()は現在日時(DATETIME型)
- TODAY()は現在日付(DATE型、00:00固定)
違いを理解しないと、DATETRUNC使用時に意図しない結果が生じます。
よくある誤解と失敗パターン
「dayofyear」は存在しない?
DATETRUNCで「dayofyear」を指定すると「day」と同じになります。「年初からの日数」には使えません。
期間フィルタとしての誤解
DATETRUNCは開始時点を返すのみで終了時点設定はできません。
実務での使い方(月次/週次/更新日フィルタ)
月次売上推移グラフを作成する例
DATETRUNC("month", [売上日])
棒グラフで売上の月間推移を視覚化します。
前年同月売上比較
DATETRUNC("month", DATEADD("year", -1, [売上日]))
前年比を即座に比較できます。
本日更新データを抽出
DATETRUNC("day", NOW()) = DATETRUNC("day", [更新日時])
DATEPARTとの違い|混乱を防ぐ関数の使い分け
- DATETRUNC:日時を指定単位で切り捨て(開始時点)
- DATEPART:指定単位の数値だけを抽出(年→2023)
よくある質問とTips集
Q1:月末を求めたい場合は?
DATEADD("day", -1, DATEADD("month", 1, DATETRUNC("month", [日付])))
Q2:週の開始を月曜にしたい場合は?
Tableauの設定から変更可能です。
まとめ:分析の第一歩としてのDATETRUNC
DATETRUNCを正しく理解することが、Tableau分析精度を飛躍的に高めます。実務シーンでの応用を繰り返し試し、自在に使いこなしていきましょう。
Comment