将字段转换为日期字段

每种数据库存储日期字段的方式都略有不同。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 Sheets、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
    期间(am/pm 标记)a、aa、aaaAM、am、PM
    时区

    z、zz、zzz

    zzzz

    Z、ZZ、ZZZ

    ZZZZ

    PDT

    太平洋夏令时

    -0800

    PST-08:00

    有关日期符号的更完整列表,请参见“Unicode 国际化组件”页面的日期和时间格式设置概述(链接在新窗口中打开)

    注意: 并非所有数据库和文件类型都支持某些日期格式。

  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 知识库)

感谢您的反馈!您的反馈已成功提交。谢谢!