Tableauについてよく利用するDate関数についてまとめる
DATE
DATEは文字列や数値を日付に変換する。変換できないものはNULLで返す
例 | 結果 | 備考 |
---|---|---|
DATE(1) | 1900/01/02 | 1900/01/01から+n日の日付を表示 |
DATE("2023/01/01") | 2023/01/01 | 間が'-'、'/'、','、'.'であればよいみたい("2023/1-1"でも同様に表示) |
DATE("20230101") | 2023/01/01 | 8桁の文字列で実際する数値であれば表示される |
DATE("2023/01/01 00:00:00") | 2023/01/01 | タイムスタンプ型でも日付に変更できる(もちろん桁と実際の数値であれば区切り文字は不要) |
DATE("2018 September 22") | 2018/09/22 | 年 月 日の並びでないとNULLが返ってくる |
DATE("9/22/2018") | 2018/09/22 | 数字であればこの並びでも表示される |
DATEPARSE
DATE関数でも自動で判別できない場合、フォーマットを指定して日付に直すことができる
例 | 結果 | 備考 |
---|---|---|
DATE("2018?2~22") | NULL | 判別できない |
DATEPARSE("yyyy?MM~dd", "2018?2~22") | 2018/02/22 0:00:00 | 日付に直すことができる |
DATEPART・DATENAME
DATEPARTは指定された日付部分を個別の数字として返し、DATENAMEは文字列として返す
※基本的に数値として取り扱った方が高速に結果は返ってくる
例 | 結果 | 備考 |
---|---|---|
DATEPART('year', #2022/1/1#) | 2022 | 数値型 |
DATENAME('year', #2022/1/1#) | 2022 | 文字列型 |
DATEADD
DATEADDは開始日に対して任意の期間を加えた日付を返す
任意の期間を負の整数を入れれば任意の期間を引くこともできる
例 | 結果 | 備考 |
---|---|---|
DATEADD('week', 1, DATE("2024-1-1")) | 2024/01/08 0:00:00 | 2024年1月1日から1週間足した日付を表示 |
DATEADD('week', -1, DATE("2024-1-1")) | 2023/12/25 0:00:00 | 2024年1月1日から1週間引いた日付を表示 |
また、よく利用する期間は以下の通り
期間 | 備考 |
---|---|
year | 年 |
month | 月 |
week | 週 |
day | 日 |
quarter | 四半期 |
DATEDIFF
開始日から終了日の期間を返す(開始日は含めない)
また、開始日が終了日よりも後の場合数値はマイナスを返す
例 | 結果 | 備考 |
---|---|---|
DATEDIFF('day', DATE("2024/01/01"), DATE("2024/1/3")) | 2 | 2024年1月1日から3日までの日数を出す |
DATEDIFF('day', DATE("2024/01/03"), DATE("2024/1/1")) | -2 | 2024年1月3日から1日までの日数を出す |