类型转换

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

为什么使用类型转换函数

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

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

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

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

显示类型转换错误的计算错误消息

提示:“数据”窗格中的字段具有默认数据类型。在许多情况下,您根本不需要使用类型转换函数。您可以通过单击图标来更改字段的数据类型。但是,在某些情况下,仅更改特定计算的数据类型可能很有用,否则 Tableau 可能无法将字段的内容正确转换为所需的数据类型(例如无法识别日期格式)。然后您需要使用如下列出的类型转换函数。

Tableau 中可用的类型转换函数

DATE

语法DATE(expression)
输出日期
定义在给定数字、字符串或日期表达式的情况下返回日期。
示例
DATE([Employee Start Date])
DATE("September 22, 2018") 
DATE("9/22/2018")
DATE(#2018-09-22 14:52#)
说明

DATEPARSE(链接在新窗口中打开) 不同,不需要提供模式,因为 DATE 会自动识别许多标准日期格式。但是,如果 DATE 不能识别输入,请尝试使用 DATEPARSE 并指定格式。

MAKEDATE(链接在新窗口中打开) 是另一个类似的函数,但是 MAKEDATE 要求输入年、月和日的数值。

DATETIME

语法DATETIME(expression)
输出日期时间
定义在给定数字、字符串或日期表达式的情况下返回日期时间。
示例
DATETIME("April 15, 2005 07:59:00") = April 15, 2005 07:59:00

FLOAT

语法FLOAT(expression)
输出浮点数(小数)
定义将其参数转换为浮点数。
示例
FLOAT(3) = 3.000
说明另请参见返回整数的 INT。

INT

语法INT(expression)
输出整数
定义将其参数转换为整数。对于表达式,此函数将结果截断为最接近于 0 的整数。
示例
INT(8/3) = 2
INT(-9.7) = -9
说明

字符串转换为整数时会先转换为浮点数,然后舍入。

另请参见返回小数的 FLOAT。
另请参见 ROUND(链接在新窗口中打开)CEILING(链接在新窗口中打开)FLOOR(链接在新窗口中打开)

MAKEDATE

语法MAKEDATE(year, month, day)
输出日期
定义返回一个依据指定数字年份、月份和日期构造的日期值。
示例
MAKEDATE(1986,3,25) = #1986-03-25#

请注意,输入错误的值将被调整为一个日期,例如 MAKEDATE(2020,4,31) = May 1, 2020,而不是返回指出没有 4 月 31 日的错误。

说明

可用于 Tableau 数据提取。检查在其他数据源中的可用性。

MAKEDATE 要求为日期的各个部分输入数字。如果您的数据是应该是日期的字符串,请尝试 DATE 函数。DATE 可自动识别许多标准的日期格式。如果 DATE 不能识别输入,请尝试使用 DATEPARSE。

MAKEDATETIME

语法MAKEDATETIME(date, time)
输出日期时间
定义返回合并了 date 和 time 的 datetime。日期可以是 date、datetime 或 string 类型。时间必须是 datetime。
示例

MAKEDATETIME("1899-12-30", #07:59:00#) = #12/30/1899 7:59:00 AM#

MAKEDATETIME([Date], [Time]) = #1/1/2001 6:00:00 AM#

说明

此函数仅适用于与 MySQL 兼容的连接(对于 Tableau 为 MySQL 和 Amazon Aurora)。

MAKETIME 是一个类似的函数,可用于 Tableau 数据提取和其他一些数据源。

MAKELINE

语法MAKELINE(<Spatial Point1>,<Spatial Point2>)
输出几何空间对象(线)
定义在两点之间生成线标记。
示例
MAKELINE(OriginPoint, DestinationPoint)
MAKELINE( MAKEPOINT(OriginLat],[OriginLong]) , MAKEPOINT([DestinationLat],[DestinationLong] )
说明对于构建起点-目的地地图或使用 MAKEPOINT 将纬度和经度转换为空间对象非常有用。

MAKEPOINT

语法MAKEPOINT(<latitude>, <longitude>)
输出几何空间对象(点)
定义将数据从纬度和经度列转换为空间对象。
示例
MAKEPOINT([AirportLatitude],[AirportLongitude])
说明

您可以使用 MAKEPOINT 使数据源具备空间特性,以便可以使用空间联接将其与空间文件联接。有关详细信息,请参见在 Tableau 中联接空间文件

若要使用 MAKEPOINT,您的数据必须包含纬度和经度坐标。

MAKETIME

语法MAKETIME(hour, minute, second)
输出日期时间。参见注释。
定义返回一个依据指定小时、分钟和秒构造的日期值。
示例
MAKETIME(14, 52, 40) = #1/1/1899 14:52:40#
说明

由于 Tableau 不支持时间数据类型,只支持日期时间,因此输出是日期时间。字段的日期部分将是 1/1/1899。

类似于 MAKEDATETIME 的函数,只适用于 MYSQL 兼容的连接。

STR

语法STR(expression)
输出字符串
定义将其参数转换为字符串。
示例
STR([ID])

转换布尔表达式

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

  • 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 将其视为字符串而不是数字(因此不会对其进行聚合)。

另请参见

数据类型

将字段转换为日期字段

在 Tableau 中设置计算的格式

Tableau 中的函数

Tableau 函数(按字母顺序)

Tableau 函数(按类别)

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