Tableau DATEADD 函数是日期函数之一,它根据 date_part(第一个参数)将用户指定的间隔数添加到给定日期。
例如,如果第二个参数传递 5,第一个参数传递年份,DATEADD 函数会在给定日期(即第三个参数)上加五年。本文将演示如何使用 DATEADD 函数并添加不同的 date_part 值,通过示例构建或预测新日期。
Tableau DATEADD 函数的语法如下。
DATEADD(date_part, interval, date)
在上面的 DATEADD 语法中,
- date_part(第一个参数)接受 iso-weekday、iso-week、iso-quarter、iso-year、year、day、month、week、quarter、weekday、hour、minute、second、dayofweek 等。
- 在 Tableau DATEADD 函数中,interval 参数接受正整数和负整数值,并将此值添加到现有日期 date_part。
- 第三个参数是我们想要使用的实际日期。例如,date_part = ‘month’,interval = 4,date = 01/01/2020。这意味着 DATEADD 函数在 01/01/2020 上添加四个月,输出为 01/06/2020。
Tableau DATEADD 函数示例
为了演示 Tableau DATEADD 日期函数,我们使用 Employee 表中的 Hire Date 列,并通过试验 date_part 来尝试递增或添加所有间隔到日期。
首先,我们必须创建一个计算字段来使用此内置的 DATEADD 函数,因为我们需要编写表达式。为此,右键单击 Measures 区域中的空白处,选择 Create Calculated Field.. 选项。
为日期添加 10 年
在此 Tableau DATEADD 函数示例中,我们将 Hire Date 加上十年。为此,请使用以下表达式,其中第一个参数为 year,10 为 interval,HireDate 为第三个参数。由于第一个参数是 year,下面的代码将在 HireDate 列上加十年。
DATEADD('year', 10, [Hire Date])

接下来,我将那个 计算字段 添加到表中。如果您查看输出,您可以看到 10 年的差异。请记住,当您将日期字段添加到 Rows 区域时,它可能会选择 YEAR(AddYears)。因此,请点击 YEAR(AddYears) 旁边的下拉箭头,勾选 Exact Date,并将其更改为 Discrete。

从上面的 Tableau 图片中,您可以看到我们已经格式化了文本。为此,右键单击 Date 单元格,然后单击 format 或使用 format 菜单。有关更多信息,请参阅 日期函数 和其他 函数 文章。
Tableau DATEADD 函数从日期减去 5 年
interval 参数也接受负值 — 正数表示添加,负数表示从日期减去 date_part。例如,我将编辑现有的 AddYears 计算字段,并将 interval 值 10 替换为 -5。它将从 HireDate 中减去五年。请从下图进行检查。
DATEADD('year', -5, [Hire Date])

为日期添加 5 天
如果您想在 Hire date 上添加五天,那么,与上面一样,创建另一个计算字段 AddDays,第一个参数为 day,第二个为 5,第三个为 HireDate。
DATEADD('day', 5, [Hire Date])

类似地,要减去 30 天,请使用以下方法。
DATEADD('day', -30, [Hire Date])
使用此相同技术来添加月、周、小时、分钟、秒等。请记住,您必须为每个计算创建新的计算字段,并包含适当的 date_part、interval 和 date 参数。
Tableau DATEADD 函数为日期添加 1 个月
要添加月份编号,请使用以下表达式
DATEADD('month', 10, [Hire Date])
为日期和时间添加 2 小时
要在 Hire date 和时间上添加小时,请使用以下表达式
DATEADD('hour', 2, [Hire Date])
Tableau DATEADD 函数使用参数
如果您希望用户能够为 DATEADD 函数提供 date_part,请创建一个参数化报表,其中包含 date_part 项目列表。为此,右键单击 Measures 区域的空白处,然后选择 Create Parameter 选项,以打开以下窗口。

我将 ParamDatePart 用作名称,选择 String 作为数据类型,并添加参数值列表,表示 Tableau DATEADD 函数的 date_part,即 year、month、day、hour、minute、second 和 week。接下来,编辑 AddYears 或创建新的计算字段,将参数作为第一个参数,10 作为第二个参数,HireDate 作为第三个参数。
DATEADD([ParamDatePart], 10, [Hire Date])

接下来,点击 ParamDatePart 参数旁边的下拉箭头,然后从上下文菜单中选择 Show Parameter 选项。默认情况下,它会将 10 小时添加到 HireDate。

请使用下拉列表更改 date_part。

为了让用户拥有更多控制权,我将创建一个名为 ParamInterval 的新参数,数据类型为 integer,最小值为 1,最大值为 100。接下来,编辑计算字段并添加以下代码。
DATEADD([ParamDatePart], [ParamInterval], [Hire Date])
现在,您可以使用下拉列表来更改 DATEADD 函数的 date_part,并使用滑块来更改 interval。
