將欄位轉換為日期欄位

每種資料庫存儲日期欄位的方式都略有不同。Tableau 會盡力對日期欄位進行解讀,但有時匯入 Tableau 的欄位將會是文字字串或數位欄位。如果發生這種情況,我們可以透過幾個步驟來解決問題。

提示:以下資訊會介紹如何將欄位的資料類型變更為日期。若要設定現有日期欄位的格式並控制其在視覺效果中的顯示方式,請參閱自訂日期格式(連結在新視窗開啟)

驗證日期欄位

日期欄位可能顯示為字串,並帶有 Abc 資料類型圖示 文字或字串值。

當日期被解讀為字串時,您在使用日期欄位時所能享受到的功能和便捷性(例如下鑽、使用日期計算以及在連續和離散度量之間切換)將蕩然無存。

如果日期解讀不正確,請按循序執行以下步驟:

  1. 變更欄位的資料類型

  2. 使用 DATEPARSE 函數建立計算

  3. 使用 DATE 函數建立計算

變更欄位的資料類型

解決日期欄位解讀問題的第一步是確保資料類型設定為 [日期] [日期和時間]

  1. 資料來源資料窗格中,按一下日期欄位的資料類型圖示,然後將資料類型變更為日期日期和時間

    下拉式功能表顯示欄位的資料類型,其中醒目提示日期和時間選項。

  2. 檢查檢視或 [資料來源] 窗格中的資料。如果看到許多 Null 值,請將資料類型恢復為 [字串] ,並繼續使用 DATEPARSE 函數建立計算來糾正問題。

    顯示在「資料來源」畫面中的 Null 值。

使用 DATEPARSE 函數建立計算

日期採用一系列近乎無限的格式存儲。某些日期欄位將年放在月之前,其他一些日期欄位用句點分隔日期的各個部分,還有一些則使用各種格式的組合。當 Tableau 無法解讀日期欄位時,原因可能是無法轉換特定格式。

DATEPARSE 函數使您能夠清晰地定義欄位的哪些部分對應於日期的哪些部分。本質上,您是在建立一個 Tableau 可用於將字串轉換為日期欄位的對應。這種對應稱為格式

附註:此函數可透過以下連接器獲得:非舊版 Excel 和文字檔連線、Amazon EMR Hadoop Hive、Cloudera Hadoop、Google 試算表、Hortonworks Hadoop Hive、MapR Hadoop Hive、MySQL、Oracle、PostgreSQL 以及 Tableau 資料擷取。有些格式可能並非適用於所有連線。

Hive 變體上不支援 DATEPARSE。僅支援 Denodo、Drill 和 Snowflake。

建立 DATEPARSE 計算

  1. 檢查日期欄位的當前格式。記下月、年、小時和天在欄位中的顯示位置。DATEPARSE 函數需要此資訊。

    日期剖析公式,其中公式各部分標示為 A、B、C 和 D。

    A. 當月日期

    B. 月份

    C. 年份

    D. 小時、分鐘、秒、毫秒、期間

  2. 在 [維度] 窗格中以右鍵按一下日期欄位,並選取 [建立] > [計算欄位]

  3. 在對話方塊中,編寫 DATEPARSE 函數。DATEPARSE 函數包含兩個部分:格式字串字串是您要轉換的欄位,其必須為字串資料類型 文字或字串值。

    資料剖析公式,其中公式各部分標示為 A 和 B。

    A. 格式

    B. 字串

    格式是 Tableau 用於將字串解讀為日期的指引。日期或時間字串的每個部分都有一個相符符號,如下表中所示。格式必須完全複製日期的顯示方式。舉例來說,如果在字串包含 2 位元數年份代碼( [26] )時使用單一年份代碼( [Y] ),則計算可能返回 null 值。

    附註:格式要完全複製顯示的字串的例外情況是,日期的長格式部分( [September] )可使用四個符號設定格式( [September" = "MMMM] )。

    格式必須包括所有空格、連字號和其他非字母數位記號才能正確解讀字串。

    日期欄位符號

    日期部分符號範例輸出

    yy

    y, yyyy

    Y

    26

    2026

    2026(用於基於「年中的週」的行事曆)

    年中的季度

    Q

    QQ

    QQQ

    QQQQ

    2

    02

    Q2

    第二季

    M

    MM

    MMM

    MMMM

    9

    09

    9 月

    九月

    年中的週w, ww47
    週中的天

    E, EE, EEE

    EEEE

    EEEEE

    週一

    M

    月中的天

    d

    dd

    1, 15

    01, 15

    年中的天 (1-365)D23, 143

    小時 (1-12)

    h

    hh

    8

    08

    小時 (0-23)

    H

    HH

    8

    08

    分鐘

    m

    mm

    8

    08

    分中的秒

    s

    ss

    5

    05

    小數秒

    S

    SS

    SSS

    SSSS

    2

    23

    235

    2350

    天中的毫秒A34532
    期間(上午/下午標記)a, aa, aaaAM, am, PM
    時區

    z, zz, zzz

    zzzz

    Z, ZZ, ZZZ

    ZZZZ

    PDT

    太平洋日光節約時間

    -0800

    PST-08:00

    有關日期符號的更完整清單,請參閱國際統一碼部件頁面的上日期和時間格式設定概觀(連結在新視窗開啟)

    附註: 並非所有資料庫和檔案類型都支援某些日期格式。

  4. 依據 Tableau 中顯示的字串檢查您的格式。如果符號和格式設定正確無誤,請選取 [確定] 建立新計算欄位。計算欄位將充當檢視中的日期欄位。

    DATEPARSE 函數的圖表。

Hyper 擷取

對於 .hyper 擷取資料來源,符號是由 Unicode 協會定義的。有關詳情,請轉到 擷取資料來源 DATEPARSE 函數的格式語法,檢視可與 .hyper 擷取中的 DATEPARSE 函數結合使用的欄位類型和符號子集。

地區設定注意事項

DATEPARSE 函數依賴於電腦設定指定的地區設定來進行解釋,然後顯示要轉換的字串。更具體地說,地區設定將影響特定格式是否可識別。這意味著如果地區設定不支援某種格式,那麼您可能會看到 Null 值或者不會返回值。例如,假設資料中有以下字串:

12Sep2026:9:8:8.6546

根據地區設定,DATEPARSE 函數為此字串返回的值也有所不同。在英語地區設定中,您將獲取一個特定值,但對於日文地區設定,您將不會獲取任何值。在這種情況下,由於日文地區設定無法辨識「Sep」,因此不會傳回任何值。

日期和時間值

英語地區設定日文地區設定
#9/12/2026 9:08:09 AM#-

如同所有日期一樣,在您使用了 DATEPARSE 函數將字串轉換為日期時間類型後,預設情況下 Tableau 將以您的地區設定的預設格式顯示日期時間值。如果地區設定發生變化,則 DATEPARSE 函數的結果可能會以不同的格式顯示新的日期時間值。

使用 DATE 函數建立計算

如果 DATEPARSE 函數不適用於您正在處理的資料,或者您要轉換的欄位是數位資料類型,則可以改用 DATE 函數。

DATE 函數會將數位、字串或日期運算式轉換為日期類型。建立一個使用 DATE 函數的計算時,Tableau 會在 Tableau 資料來源中建立一個新欄位,該欄位允許您與作為日期的日期資料進行交互。若要使用 DATE 函數利用數位、字串或日期運算式成功組建日期值,Tableau 需要能夠將字串的元件解釋為日期部分。識別日期的元件後,Tableau 會使用電腦地區設定確定日期的預設格式。

例如,假設您正在使用的表包含一個稱為 [原始日期] 的日期列。  [原始日期] 列是字串類型。

  • 原始日期:03Jan2026、05Jan2026、07Mar2026、19Mar2026、30Apr2026

在此情況下,您可以建立一個稱為 [新日期] 的計算欄位,該欄位使用 DATE 函數中的運算式將 [原始日期] 欄位中的字串值轉換為日期值。

DATE (LEFT([Original Date], 2) + "/" + MID([Original Date],3,3) + "/" + RIGHT([Original Date],4))

對於此範例,日期運算式由用於確定日元件的 LEFT 函數、用於確定月元件的 MID 函數以及用於確定年元件的 RIGHT 函數組成。

[新日期] 計算會組建以下列:

  • 新日期:1/3/2026、1/5/2026、3/7/2026、3/19/2026、4/30/2026

在此範例中,新日期值基於英語地區設定和預設格式。

另請參閱

自訂日期格式(連結在新視窗開啟)

使用 ISO-8601 週和年份設定日期格式(連結在新視窗開啟)

日期函式(連結在新視窗開啟)

所有函數(按類別):日期(連結在新視窗開啟)

STR() 函數忽略預設日期和數位格式設定(連結在新視窗開啟)(Tableau 知識庫)

感謝您的意見反應!已成功提交您的意見回饋。謝謝!