---
schema_version: "1"
id: 2b49b7ca87116d350607351483e600ca2509c6425299a040e001023877561821
title: 类型转换
collection: tableau
version: current
locale: zh-cn
portal_url: https://docs.salesforce.com/tableau/current/zh-cn/pro/desktop/functions_functions_typeconversion.md
canonical_url: https://help.tableau.com/current/pro/desktop/zh-cn/functions_functions_typeconversion.htm
source_site: help.tableau.com
content_type: documentation
content_hash: 16e66a68e4661d55291978b1a69c5729d6739537ada8cf83c7cb1f778d6e46ca
description: Reference for type conversion functions that cast fields between data types.
---
[跳转到主要内容](#main-content)

# 类型转换

本文介绍 Tableau 中的类型转换函数及其用法。另外还演示了如何使用示例创建类型转换计算。

## 为什么使用类型转换函数

类型转换函数允许您将字段从一种数据类型转换为另一种数据类型（这称为“转换”）。例如，如果字符串数据类型的字段中有日期信息，则您将无法在日期计算中使用该字段，除非将该字段转换（更改）为日期数据类型。

例如，若要在 DATEDIFF 函数中使用字符串日期字段，您还需要使用日期类型转换：

`DATEDIFF('day', [Date Field], DATE([String Date Field]) )`

如果 DATE 函数不更改数据类型，您将收到错误消息“DATEDIFF is being called with (string, date, string)”。

![显示类型转换错误的计算错误消息](/tableau/current/zh-cn/pro/desktop/zh-cn/Img/function_typeconversion_error.png)

> [!TIP]
> 
> **提示**：“数据”窗格中的字段具有默认[数据类型](https://help.tableau.com/current/pro/desktop/zh-cn/datafields_typesandroles_datatypes.htm)。在许多情况下，您根本不需要使用类型转换函数。您可以通过单击图标来更改字段的数据类型。但是，在某些情况下，仅更改特定计算的数据类型可能很有用，否则 Tableau 可能无法将字段的内容正确转换为所需的数据类型（例如无法识别日期格式）。然后您需要使用如下列出的类型转换函数。

## Tableau 中可用的类型转换函数

### DATE

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>DATE(expression)</code></td></tr><tr><td>输出</td><td>日期</td></tr><tr><td>定义</td><td>在给定数字、字符串或日期表达式的情况下返回日期。</td></tr><tr><td>示例</td><td><pre>DATE([Employee Start Date])</pre><pre>DATE("September 22, 2018") </pre><pre xml:space="preserve">DATE("9/22/2018")</pre><pre>DATE(#2018-09-22 14:52#)</pre></td></tr><tr><td>说明</td><td><p>与 <a href="https://help.tableau.com/v0.0/pro/desktop/zh-cn/functions_functions_date.htm#dateparse" target="_blank">DATEPARSE</a> 不同，不需要提供模式，因为 DATE 会自动识别许多标准日期格式。但是，如果 DATE 不能识别输入，请尝试使用 DATEPARSE 并指定格式。</p><p><a href="https://help.tableau.com/v0.0/pro/desktop/zh-cn/functions_functions_date.htm#makedate" target="_blank">MAKEDATE</a> 是另一个类似的函数，但是 MAKEDATE 要求输入年、月和日的数值。</p></td></tr></tbody></table>

### DATETIME

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>DATETIME(expression)</code></td></tr><tr><td>输出</td><td>日期时间</td></tr><tr><td>定义</td><td>在给定数字、字符串或日期表达式的情况下返回日期时间。</td></tr><tr><td>示例</td><td><pre>DATETIME("April 15, 2005 07:59:00") = April 15, 2005 07:59:00</pre></td></tr></tbody></table>

### FLOAT

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>FLOAT(expression)</code></td></tr><tr><td>输出</td><td>浮点数（小数）</td></tr><tr><td>定义</td><td>将其参数转换为浮点数。</td></tr><tr><td>示例</td><td><pre xml:space="preserve">FLOAT(3) = 3.000</pre></td></tr><tr><td>说明</td><td>另请参见返回整数的 INT。</td></tr></tbody></table>

### INT

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>INT(expression)</code></td></tr><tr><td>输出</td><td>整数</td></tr><tr><td>定义</td><td>将其参数转换为整数。对于表达式，此函数将结果截断为最接近于 0 的整数。</td></tr><tr><td>示例</td><td><pre xml:space="preserve">INT(8/3) = 2</pre><pre xml:space="preserve">INT(-9.7) = -9</pre></td></tr><tr><td>说明</td><td><p>字符串转换为整数时会先转换为浮点数，然后舍入。</p><p>另请参见返回小数的 FLOAT。<br>另请参见 <a href="https://help.tableau.com/current/pro/desktop/zh-cn/functions_functions_number.htm#round" target="_blank">ROUND</a>、<a href="https://help.tableau.com/current/pro/desktop/zh-cn/functions_functions_number.htm#ceiling" target="_blank">CEILING</a> 和 <a href="https://help.tableau.com/current/pro/desktop/zh-cn/functions_functions_number.htm#floor" target="_blank">FLOOR</a></p></td></tr></tbody></table>

### MAKEDATE

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>MAKEDATE(year, month, day)</code></td></tr><tr><td>输出</td><td>日期</td></tr><tr><td>定义</td><td>返回一个依据指定数字年份、月份和日期构造的日期值。</td></tr><tr><td>示例</td><td><pre>MAKEDATE(1986,3,25) = #1986-03-25#</pre><p>请注意，输入错误的值将被调整为一个日期，例如 MAKEDATE(2020,4,31) = May 1, 2020，而不是返回指出没有 4 月 31 日的错误。</p></td></tr><tr><td>说明</td><td><p>可用于 Tableau 数据提取。检查在其他数据源中的可用性。</p><p>MAKEDATE 要求为日期的各个部分输入数字。如果您的数据是应该是日期的字符串，请尝试 DATE 函数。DATE 可自动识别许多标准的日期格式。如果 DATE 不能识别输入，请尝试使用 DATEPARSE。</p></td></tr></tbody></table>

### MAKEDATETIME

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>MAKEDATETIME(date, time)</code></td></tr><tr><td>输出</td><td>日期时间</td></tr><tr><td>定义</td><td>返回合并了 date 和 time 的 datetime。日期可以是 date、datetime 或 string 类型。时间必须是 datetime。</td></tr><tr><td>示例</td><td><p></p><pre>MAKEDATETIME("1899-12-30", #07:59:00#) = #12/30/1899 7:59:00 AM#</pre><p></p><p></p><pre>MAKEDATETIME([Date], [Time]) = #1/1/2001 6:00:00 AM#</pre><p></p></td></tr><tr><td>说明</td><td><p>此函数仅适用于与 MySQL 兼容的连接（对于 Tableau 为 MySQL 和 Amazon Aurora）。</p><p>MAKETIME 是一个类似的函数，可用于 Tableau 数据提取和其他一些数据源。</p></td></tr></tbody></table>

### MAKELINE

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>MAKELINE(&lt;Spatial Point1&gt;,&lt;Spatial Point2&gt;)</code></td></tr><tr><td>输出</td><td>几何空间对象（线）</td></tr><tr><td>定义</td><td>在两点之间生成线标记。</td></tr><tr><td>示例</td><td><pre>MAKELINE(OriginPoint, DestinationPoint)</pre><pre>MAKELINE( MAKEPOINT(OriginLat],[OriginLong]) , MAKEPOINT([DestinationLat],[DestinationLong] )</pre></td></tr><tr><td>说明</td><td>对于构建起点-目的地地图或使用 MAKEPOINT 将纬度和经度转换为空间对象非常有用。</td></tr></tbody></table>

### MAKEPOINT

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>MAKEPOINT(&lt;latitude&gt;, &lt;longitude&gt;)</code></td></tr><tr><td>输出</td><td>几何空间对象（点）</td></tr><tr><td>定义</td><td>将数据从纬度和经度列转换为空间对象。</td></tr><tr><td>示例</td><td><pre>MAKEPOINT([AirportLatitude],[AirportLongitude])</pre></td></tr><tr><td>说明</td><td><p>您可以使用 MAKEPOINT 使数据源具备空间特性，以便可以使用空间联接将其与空间文件联接。有关详细信息，请参见<a href="https://help.tableau.com/current/pro/desktop/zh-cn/maps_spatial_join.htm" class="xref">在 Tableau 中联接空间文件</a>。</p><p>若要使用 MAKEPOINT，您的数据必须包含纬度和经度坐标。</p></td></tr></tbody></table>

### MAKETIME

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>MAKETIME(hour, minute, second)</code></td></tr><tr><td>输出</td><td>日期时间。参见注释。</td></tr><tr><td>定义</td><td>返回一个依据指定小时、分钟和秒构造的日期值。</td></tr><tr><td>示例</td><td><pre>MAKETIME(14, 52, 40) = #1/1/1899 14:52:40#</pre></td></tr><tr><td>说明</td><td><p>由于 Tableau 不支持时间数据类型，只支持日期时间，因此输出是日期时间。字段的日期部分将是 1/1/1899。</p><p>类似于 MAKEDATETIME 的函数，只适用于 MYSQL 兼容的连接。</p></td></tr></tbody></table>

### STR

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>STR(expression)</code></td></tr><tr><td>输出</td><td>字符串</td></tr><tr><td>定义</td><td>将其参数转换为字符串。</td></tr><tr><td>示例</td><td><pre xml:space="preserve">STR([ID])</pre></td></tr></tbody></table>  

## 转换布尔表达式

可以将布尔值转换为整数、浮点数或字符串，但不能将其转换为日期。

- `True` 映射到 1、1.0 或“1”
- `False` 映射到 0、0.0 或“0”
- `Unknown` 映射到 `Null`

## 创建一个类型转换计算

请按照以下步骤学习如何创建一个类型转换计算。

1. 在 Tableau Desktop 中，连接到 Tableau 附带的**示例 - 超市**已保存数据源。
2. 导航到工作表。
3. 选择“分析”\>“创建计算字段”。
4. 在打开的计算编辑器中，将“Postal Code”（邮政编码）字段从数字转换为字符串:

- 将计算字段命名为“Postal Code”（邮政编码）字符串。
- 输入以下公式：
    
    `STR([Postal Code])`
- 完成后，单击**“确定”**。

新的计算字段将出现在**“数据”**窗格中的“维度”下。就像其他字段一样，您可以在一个或多个可视化项中使用该字段。

将此字段从数字转换为字符串可确保 Tableau 将其视为字符串而不是数字（因此不会对其进行聚合）。

## 另请参见

[数据类型](https://help.tableau.com/current/pro/desktop/zh-cn/datafields_typesandroles_datatypes.htm)

[将字段转换为日期字段](https://help.tableau.com/current/pro/desktop/zh-cn/data_dateparse.htm)

[在 Tableau 中编写计算](https://help.tableau.com/current/pro/desktop/zh-cn/functions_operators.htm)

[Tableau 中的函数](https://help.tableau.com/current/pro/desktop/zh-cn/functions.htm)

[Tableau 函数（按字母顺序）](https://help.tableau.com/current/pro/desktop/zh-cn/functions_all_alphabetical.htm)

[Tableau 函数（按类别）](https://help.tableau.com/current/pro/desktop/zh-cn/functions_all_categories.htm)