
今回は日付関数の1つで期間を算出することが出来るDATEDIFFについて解説する。
DATEDIFF関数とは?
DATEDIFF関数は2つの指定した日付の差(日数や月数など)=期間を算出することができる関数だ。
DIFFがわかりにくいと思うが、「difference(ディファレンス)」を省略した表現だ。
DATEDIFFを「DATE」と「DIFF」に分解すると
- DATE=日付
- DIFF=差分
つまり、DATEDIFF=日付の差分(指定したある日付と他の日付の差)を算出する関数ということだ。
例えば、ネットでオーダーを受けた日と実際にお客さんに向けて出荷した日の日数差、つまり
「注文を受けてからどれくらいの日数で出荷できているか?」
を把握したい時などにDATEDIFF関数は便利だ。
下記はサンプルスーパーストアにおいて、DATEDIFF関数でオーダー日と出荷日の日数差を各出荷モードごとに棒グラフで表示した例だ。
各出荷モードに応じてオーダーから出荷までの日数差が異なっていることがお分かりいただけると思う。
このようにDATEDIFF関数は2つの日付の差=期間を把握したい時に活用される。
DATEDIFF関数の使用方法
DATEDIFF関数は計算フィールドを作成して使用する。
指定の仕方は下図の通りだ。
具体的に先ほどのオーダー日と出荷日の日数差を算出する例の場合は下図のように指定する。
オプションの[start_of_week]は慣れてから必要に応じて使えばいいと思う。
先ほど例では'day'を指定して日数差を算出していたが、下記のように指定の仕方で様々な期間差を算出可能だ。
- second:秒差
- minute:分差
- hour:時間差
- day:日数差
- week:週差
- month:月差
- year:年差
実際に計算フィールドでの指定の具体例は下記の通りだ。
例えば、
- オーダー日が2021年9月10日
- 出荷日が2021年9月15日
だった場合は下記のような感じで計算される。
2つ目の日付フィールドで指定された日付から1つ目の日付フィールドの日付を引く。
基本的に日付が浅い方(オーダー日と出荷日ならまずオーダーが先だからオーダー日となる)を1つ目の日付フィールドに指定するといいと思う。
もちろん日数差をマイナスで表示したい場合も時にはあると思う。
行いたい分析の目的に合う形で指定の仕方を調整すればOKだ。
DATEDIFF関数の使用シーン
DATEDIFF関数は下記のようなシーンでよく使う。
日付を足し引きすることができるDATEADD関数と組み合わせて使うこともある。
- 注文日から納品日までの日数差を出したい時
- 生年月日から年齢を出したい時
- 入会月と退会月から在籍期間を算出したい時
など期間を算出したい時にDATEDIFF関数は非常に便利なので、ぜひ習得してみてほしい。
まとめ
今回はDATEDIFF関数について解説してみた。
日付関数は何種類もあるので混乱しがちだ。
まとめて全部覚えようとするよりは1つずつ集中的に勉強してTableau上での使い方に慣れていくのがおすすめだ。
他の日付関数や日付データを調整する記事は下記で紹介しているので是非参考にしてほしい。