日期函数
本文介绍 Tableau 中的日期函数及其用途。它还演示如何使用示例创建日期计算。
创建日期计算
按照下面的步骤进行操作以了解如何创建日期计算。
-
在 Tableau Desktop 中,连接到 Tableau 附带的“Sample - Superstore”已保存数据源。
-
导航到工作表。
-
从“数据”窗格中的“维度”下,将“Order Date”(订单日期)拖到“行”功能区。
-
在“行”功能区上,单击“YEAR(Order Date)”字段上的加号图标 (+)。
“QUARTER(Order Date)”将添加到“行”功能区,并且视图将更新。
-
在“行”功能区上,单击“QUARTER(Order Date)”字段上的加号图标 (+),以下钻到“MONTH(Order Date)”。
-
选择“分析”>“创建计算字段”。
-
在打开的计算编辑器中,执行以下操作:
-
将计算字段命名为“Quarter Date”(季度日期)。
-
输入以下公式:
DATETRUNC('quarter', [Order Date])
-
完成后,单击“确定”。
新的日期计算将出现在“数据”窗格中的“维度”下。就像其他字段一样,您可以在一个或多个可视化项中使用该字段。
-
从“数据”窗格中的“维度”下,将“Quarter Date”(季度日期)拖到“行”功能区,并将其放在“MONTH(Order Date)”右侧。
可视化项将更新为包含年份值。这是因为 Tableau 将日期数据累积到最高详细级别。
-
在“行”功能区上,右键单击“YEAR(Quarter Date)”,并选择“精确日期”。
-
在“行”功能区上,再次右键单击“YEAR(Quarter Date)”,并选择“离散”。
可视化项将更新为包含表中每一行的准确季度日期。
为何使用日期函数
日期函数允许您对数据源中的日期进行操作。
例如,您可能有一个各个值为年、月、日的日期字段 (2004-04-15)。您可以使用日期函数(例如 DATETRUNC 函数)依据这些现有值创建新的日期值。例如,您可以查找任何现有日期值的季度开始日期。
日期计算可能如下所示:
DATETRUNC('quarter', [Order Date])
因此,如果原始日期为“3/27/2011”,则使用上面的计算会返回“1/1/2011”,指明 1 季度的开始日期为 1 月 1 日。如果原始日期为“5/3/2011”,则计算将返回“4/1/2011”,指明 2 季度的开始日期为 4 月 1 日(一年过去四个月)。
有关示例,请参见下面的创建日期计算部分。
公历与 ISO 8601 标准
如果使用 .hyper 数据提取,则可以使用传统的公历或 ISO 8601 标准计算日期函数。有关创建 .hyper 数据提取的详细信息,请参见数据提取升级为 .hyper 格式(Link opens in a new window)。
ISO 8601 格式是一种用于计算日期和时间的国际标准,它在一年的起始周(第 1 周)的计算方式上与公历不同。在公历中,用户可以定义一周从哪一天开始。在 ISO 8601 标准中,一周始终从星期一开始。
在公历中,在新的一年开始时,该年的第 1 周计为在 1 月 1 日开始,而不管 1 月 1 日是一周中的哪一天。如果 1 月 1 日为星期六,则第 1 周将有一天在该周,并且第 2 周将在下一个星期日开始。
在 ISO 8601 格式中,新年的第 1 周在星期一开始,并且该周在 1 月份有四天以上。举例来说,如果 1 月 1 日为星期六,则第 1 周将不会开始,而是直到下一个星期一(1 月 3 日)才开始。通过这种方式计算日期可确保新年的第 1 周有一致的天数。
有关使用 ISO 8601 日期的详细信息,请参见ISO-8601 基于周的日历(Link opens in a new window)。
Tableau 中的可用日期函数
函数 |
语法 |
说明 |
DATEADD |
|
返回指定日期,该日期的指定 支持 ISO 8601 日期。 示例:
该表达式会向日期 |
DATEDIFF |
|
返回
支持 ISO 8601 日期。 示例:
第一个表达式返回 1,因为当 |
DATENAME |
|
以字符串的形式返回 支持 ISO 8601 日期。 示例:
|
DATEPART |
|
以整数的形式返回
注意: 当 支持 ISO 8601 日期。 示例:
|
DATETRUNC |
|
按 date_part 指定的准确度截断指定日期。此函数返回新日期。例如,以月份级别截断处于月份中间的日期时,此函数返回当月的第一天。 支持 ISO 8601 日期。 示例:
|
DAY |
|
以整数的形式返回给定日期的天。 示例:
|
ISDATE |
|
如果给定字符串为有效日期,则返回 true。 示例:
|
MAKEDATE |
|
返回一个依据指定年份、月份和日期构造的日期值。 可用于 Tableau 数据提取。检查在其他数据源中的可用性。 示例:
|
MAKEDATETIME |
|
返回合并了 date 和 time 的 datetime。日期可以是 date、datetime 或 string 类型。时间必须是 datetime。 注意:此函数仅适用于与 MySQL 兼容的连接(对于 Tableau 为 MySQL 和 Amazon Aurora)。 示例:
|
MAKETIME |
|
返回一个依据指定小时、分钟和秒构造的日期值。 可用于 Tableau 数据提取。检查在其他数据源中的可用性。 示例:
|
MAX |
|
通常应用于数字,不过也适用于日期。返回 示例:
|
MIN |
|
通常应用于数字,不过也适用于日期。返回 示例:
|
MONTH |
|
以整数的形式返回给定日期的月份。 示例:
|
NOW |
|
返回当前本地系统日期和时间。 示例:
|
QUARTER |
QUARTER ( )
|
以整数的形式返回给定日期的季度。 示例:
|
TODAY |
|
返回当前日期。 示例:
|
WEEK |
WEEK( )
|
以整数的形式返回给定日期的周。 示例:
|
YEAR |
|
以整数的形式返回给定日期的年份。 示例:
|
date_part
值
Tableau 中的多日期函数使用 date_part
,它是一个常量字符串参数。
您可以使用的有效 date_part
值为:
date_part | 值 |
---|---|
'year'
|
四位数年份 |
'quarter'
|
1-4 |
'month'
|
1-12 或 "January"、"February" 等 |
'dayofyear'
|
一年中的第几天;1 月 1 日为 1、2 月 1 日为 32,依此类推 |
'day'
|
1-31 |
'weekday'
|
1-7 或 "Sunday"、"Monday" 等 |
'week'
|
1-52 |
'hour'
|
0-23 |
'minute'
|
0-59 |
'second'
|
0-60 |
'iso-year'
|
4 位数 ISO 8601 年份 |
'iso-quarter'
|
1-4 |
'iso-week'
|
1-52,每周始终从星期一开始 |
'iso-weekday'
|
1-7,每周始终从星期一开始 |
有关设置日期函数格式的详细信息,请参见总览:计算语法(Link opens in a new window)表“文本表达式”部分。
注意:日期函数不考虑配置的会计年度开始。有关详细信息,请参见会计日期。
注意: date_part
返回整数。 以下值是 date_part 接受的输入以及该输入的格式。