Tableau版本 : 2020.3
這次的目的是要將Tableau無法自動判讀成日期的欄位
手動轉成日期格式
官方的參考文件
https://help.tableau.com/current/pro/desktop/zh-tw/data_dateparse.htm
字串格式 > 日期格式
以下是目前有的資料 ( 有日期與時間的資料 )

採用官方文件中最後一個方法 使用 DATE 函數建立計算
首先"建立導出欄位"

輸入公式

這邊可以先看一下官方文件的說明
官方文件
例如,假設您正在使用的表包含一個稱為 [原始日期] 的日期列。 [原始日期] 列是字串類型。
原始日期
03Jan2017
05Jan2017
07Mar2017 19
Mar2017 30
Apr2017
在此情況下,您可以建立一個稱為 [新日期] 的計算欄位,該欄位使用 DATE 函數中的運算式將 [原始日期] 欄位中的字串值轉換為日期值。 對於此範例,日期運算式由用於確定日元件的 LEFT 函數、用於確定月元件的 MID 函數以及用於確定年元件的 RIGHT 函數組成。
DATE (LEFT([Original Date], 2) + "/" + MID([Original Date],3,3) + "/" + RIGHT([Original Date],4))
[新日期] 計算會組建以下列:
新日期
2017/1/3
2017/1/5
2017/3/7
2017/3/19
2017/4/30
官方文件的案例是轉換純日期函數
這邊我再加上了日期+時間
DATETIME(
LEFT([day],4) + "/" + MID([day],5,2) + "/" + RIGHT([day],2) #處理日期的部分
+' '+LEFT([time],2)+':'+MID([time],3,2)+':'+RIGHT([time],2) #處理時間
)
這裡解析一下
可以分成兩部分看
一、DATETIME() 括號裡面主要是字串的重組
將日期時間的資料取出來,重組成Tableau讀得懂、能夠自動轉換成時間格式的字串表示方式
二、最後再用DATETIME()將字串轉成時間格式
以下是說明
LEFT / MID / RIGHT 函數
- LEFT ( [ 欄位 ] , N ) : 從所選取的欄位字串最左邊第一個字取到第N個字
- RIGHT ( [ 欄位 ] , N ) : 從所選取的欄位字串最右邊第一個字取到第N個字
- MID ( [ 欄位 ] , M , N ) : 從所選取的欄位字串左邊數過來第M個字開始取N個字
以本次資料的第一筆資料為例

LEFT([day],4) : 從'20210114'字串最左邊起取4個字,也就是'2021'
MID([day],5,2 : 從'20210114'字串第5個字('0')起取2個字,也就是'01'
RIGHT([day],2 : 從'20210114'字串最右邊起取2個字,也就是'14'
中間再用'/'串起來,所以最終的結果就是2021/01/14
時間的部分也是相同的道理,從time欄位取出資料再重組
以time的第一筆資料為例,取完資料再用":"重組後,結果就會是 01:05:36
以上都只是還在字串的操作
因為我們將原本的資料轉換成Tableau讀得懂的時間形式
最後套上DATETIME()函數就能把字串轉成時間格式了
為了好理解,我將字串的結果與放進DATETIME()後的結果一併列出來

最後一個欄位就達成這次的目標
P.S 還有一個要注意的點是
日期和時間的中間要用空格('')隔開,不然會無法轉成日期格式
請先 登入 以發表留言。