---
schema_version: "1"
id: 76b20dea11a8fb29e5d1076ebb612b4f3ed92611719ecbddaf48d8aac00fc54b
title: 将字段转换为日期字段
collection: tableau
version: next
locale: zh-cn
portal_url: https://docs.salesforce.com/tableau/next/zh-cn/public/desktop/data_dateparse.md
canonical_url: https://help.tableau.com/v0.0/public/desktop/zh-cn/data_dateparse.htm
source_site: help.tableau.com
content_type: documentation
content_hash: 45c3abfa831c7964796feb9602400428ee9c243364d53458f7224de282cbd2c2
description: Convert a text or numeric field to a date using data type changes and the DATEPARSE function.
---
[跳转到主要内容](#main-content)

# 将字段转换为日期字段

每种数据库存储日期字段的方式都略有不同。Tableau 会尽力对日期字段进行解读，但有时导入 Tableau 的字段将会是文本字符串或数字字段。如果发生这种情况，我们可以通过几个步骤来解决问题。

> [!TIP]
> 
> **提示**：以下信息涉及将字段的数据类型更改为日期。若要设置现有日期字段的格式并控制其在可视化项中的显示方式，请参见[自定义日期格式](https://help.tableau.com/current/pro/desktop/zh-cn/dates_custom_date_formats.htm)。

## 验证日期字段

日期字段可能显示为字符串，带有 Abc 数据类型图标 ![文本或字符串值。](/tableau/next/zh-cn/public/desktop/zh-cn/Img/symbol_text_row.png)。

当日期被解读为字符串时，您在使用日期字段时所能享受到的功能和便捷性（例如下钻、使用日期计算以及在连续和离散度量之间切换）将荡然无存。

如果日期解读不正确，请按顺序执行以下步骤：

1. [更改字段的数据类型](#type)
2. [使用 DATEPARSE 函数创建计算](#dateparse)
3. [使用 DATE 函数创建一个计算](#date)

## 更改字段的数据类型

解决日期字段解读问题的第一步是确保数据类型设置为“日期”或“日期和时间”。

1. 在“数据源”或“数据”窗格中，单击日期字段的数据类型图标，并将数据类型更改为“日期”或“日期和时间”
    
    ![下拉菜单显示字段的数据类型，并突出显示日期和时间选项。](/tableau/next/zh-cn/public/desktop/zh-cn/Img/dateparse_type.png)
2. 检查视图或“数据源”窗格中的数据。如果看到许多 Null 值，请将数据类型恢复为“字符串”，并继续[使用 DATEPARSE 函数创建计算](#dateparse)来纠正问题。
    
    ![Null 值显示在“数据源”屏幕中。](/tableau/next/zh-cn/public/desktop/zh-cn/Img/dateparse_example_3.png "存在 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 函数需要此信息。
    
    <table style="width: 100%;"><colgroup><col><col></colgroup><tbody><tr><td><img src="https://help.tableau.com/v0.0/public/desktop/zh-cn/Img/dateparse_example4.png" alt="日期解析公式，其中公式各部分标记为 A、B、C 和 D。"></td><td><p><span class="uicontrol">A</span>：月中的天</p><p><span class="uicontrol">B</span>：月</p><p><span class="uicontrol">C</span>：年</p><p><span class="uicontrol">D</span>：小时、分钟、秒、毫秒、期间</p></td></tr></tbody></table>
2. 在“维度”窗格中右键单击日期字段，并选择“创建”\>“计算字段”。
3. 在对话框中，编写 DATEPARSE 函数。DATEPARSE 函数包含两个部分：格式和字符串。字符串是您希望转换的字段，其必须为字符串数据类型 ![文本或字符串值。](/tableau/next/zh-cn/public/desktop/zh-cn/Img/symbol_text_row.png)。
    
    <table class="table--plain" style="width: 100%;"><colgroup><col style="width: 569px;"><col></colgroup><tbody><tr><td><img src="https://help.tableau.com/v0.0/public/desktop/zh-cn/Img/dateparse_example_5.png" alt="数据解析公式，其中公式各部分标记为 A 和 B。"></td><td><p><span class="uicontrol">A</span>：格式</p><p><span class="uicontrol">B</span>：字符串</p></td></tr></tbody></table>
    
    格式是 Tableau 用于将字符串解读为日期的指引。日期或时间字符串的每个部分都有一个匹配符号，如下表中所示。格式必须完全复制日期的显示方式。举例来说，如果在字符串包含 2 位数年份代码（“26”）时使用单一年份代码（“Y”），则计算可能返回 null 值。
    
    注意：格式要完全复制显示的字符串的例外情况是，日期的长格式部分（“September”）可使用四个符号设置格式（“September" = "MMMM”）。
    
    格式必须包括所有空格、连字符和其他非字母数字符号才能正确解读字符串。
    
    ### 日期字段符号
    
    <table class="table-plain"><colgroup><col class="Column-Column1"><col class="Column-Column1"><col class="Column-Column1"></colgroup><tbody><tr class="Body-Body1"><th class="BodyE-Column1-Body1" style="font-weight: bold;">日期部分</th><th class="BodyE-Column1-Body1" style="font-weight: bold;">符号</th><th class="BodyE-Column1-Body1" style="font-weight: bold;">示例输出</th></tr><tr class="Body-Body2"><td class="BodyE-Column1-Body2">年</td><td class="BodyE-Column1-Body2"><p>yy</p><p>y, yyyy</p><p>Y</p></td><td class="BodyE-Column1-Body2"><p>26</p><p>2026</p><p>2026（用于基于年中某周的日历）</p></td></tr><tr class="Body-Body1"><td class="BodyE-Column1-Body1">年中的季度</td><td class="BodyE-Column1-Body1"><p>Q</p><p>QQ</p><p>QQQ</p><p>QQQQ</p></td><td class="BodyE-Column1-Body1"><p>2</p><p>02</p><p>Q2</p><p>第二季度</p></td></tr><tr class="Body-Body1"><td class="BodyE-Column1-Body1">月</td><td class="BodyE-Column1-Body1"><p>M</p><p>MM</p><p>MMM</p><p>MMMM</p></td><td class="BodyE-Column1-Body1"><p>9</p><p>09</p><p>9 月</p><p>九月</p></td></tr><tr class="Body-Body2"><td class="BodyE-Column1-Body2">一年中的某周</td><td class="BodyE-Column1-Body2">w、ww</td><td class="BodyE-Column1-Body2">47</td></tr><tr class="Body-Body2"><td class="BodyE-Column1-Body2">周中的天</td><td class="BodyE-Column1-Body2"><p>E, EE, EEE</p><p>EEEE</p><p>EEEEE</p></td><td class="BodyE-Column1-Body2"><p>周一</p><p>星期一</p><p>M</p></td></tr><tr class="Body-Body1"><td class="BodyE-Column1-Body1">月中的天</td><td class="BodyE-Column1-Body1"><p>d</p><p>dd</p></td><td class="BodyE-Column1-Body1"><p>1、15</p><p>01、15</p></td></tr><tr class="Body-Body2"><td class="BodyE-Column1-Body2">年中的天 (1-365)</td><td class="BodyE-Column1-Body2">D</td><td class="BodyE-Column1-Body2">23、143</td></tr><tr class="Body-Body2"><td class="BodyE-Column1-Body2"><p>小时 (1-12)</p></td><td class="BodyE-Column1-Body2"><p>h</p><p>hh</p></td><td class="BodyE-Column1-Body2"><p>8</p><p>08</p></td></tr><tr class="Body-Body2"><td class="BodyE-Column1-Body2">小时 (0-23)</td><td class="BodyE-Column1-Body2"><p>H</p><p>HH</p></td><td class="BodyE-Column1-Body2"><p>8</p><p>08</p></td></tr><tr class="Body-Body1"><td class="BodyE-Column1-Body1">分钟</td><td class="BodyE-Column1-Body1"><p>m</p><p>mm</p></td><td class="BodyE-Column1-Body1"><p>8</p><p>08</p></td></tr><tr class="Body-Body2"><td class="BodyE-Column1-Body2">一分钟中的秒</td><td class="BodyE-Column1-Body2"><p>s</p><p>ss</p></td><td class="BodyE-Column1-Body2"><p>5</p><p>05</p></td></tr><tr class="Body-Body1"><td class="BodyE-Column1-Body1">小数秒</td><td class="BodyE-Column1-Body1"><p>S</p><p>SS</p><p>SSS</p><p>SSSS</p></td><td class="BodyE-Column1-Body1"><p>2</p><p>23</p><p>235</p><p>2350</p></td></tr><tr class="Body-Body2"><td class="BodyB-Column1-Body2">天中的毫秒</td><td class="BodyB-Column1-Body2">A</td><td class="BodyB-Column1-Body2">34532</td></tr><tr class="Body-Body1"><td class="BodyE-Column1-Body1">期间（am/pm 标记）</td><td class="BodyE-Column1-Body1">a、aa、aaa</td><td class="BodyE-Column1-Body1">AM、am、PM</td></tr><tr class="Body-Body2"><td class="BodyE-Column1-Body2">时区</td><td class="BodyE-Column1-Body2"><p>z、zz、zzz</p><p>zzzz</p><p>Z、ZZ、ZZZ</p><p>ZZZZ</p></td><td class="BodyE-Column1-Body2"><p>PDT</p><p>太平洋夏令时</p><p>-0800</p><p>PST-08:00</p></td></tr></tbody></table>
    
    有关日期符号的更完整列表，请参见“Unicode 国际化组件”页面的[日期和时间格式设置概述](https://unicode-org.github.io/icu/userguide/format_parse/datetime/)。
    
    **注意：** 并非所有数据库和文件类型都支持某些日期格式。
4. 依据 Tableau 中显示的字符串检查您的格式。如果符号和格式设置正确无误，请选择“确定”创建新计算字段。计算字段将充当视图中的日期字段。
    
    ![DATEPARSE 函数的图表。](/tableau/next/zh-cn/public/desktop/zh-cn/Img/dateparse_example_6.png "将格式与字符串进行比较。")

### Hyper 数据提取

对于 .hyper 数据提取数据源，符号是由 Unicode 协会定义的。有关详细信息，请转到 [数据提取数据源 DATEPARSE 函数的格式语法](https://help.tableau.com/v0.0/public/desktop/zh-cn/dates_custom_date_formats.htm#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

在此示例中，新日期值基于英语区域设置和默认格式。

## 另请参见

[自定义日期格式](https://help.tableau.com/v0.0/public/desktop/zh-cn/dates_custom_date_formats.htm)

[使用 ISO-8601 周和年份设置日期格式](https://help.tableau.com/v0.0/public/desktop/zh-cn/dates_custom_date_formats_week.htm)

[日期函数](https://help.tableau.com/v0.0/public/desktop/zh-cn/functions_functions_date.htm)

[所有函数（按类别）：日期](https://help.tableau.com/v0.0/public/desktop/zh-cn/functions_all_categories.htm#Date)

[STR() 函数忽略默认日期和数字格式设置](http://kb.tableau.com/articles/Issue/str-function-ignores-date-and-number-formatting?lang=zh-cn)（Tableau 知识库）