DATEADD

适用于:计算列计算表度量值视觉计算

注意

不建议将此函数用于 视觉计算,因为它可能会返回毫无意义的结果。

返回一个表,该表包含日期列,按当前上下文中日期的指定间隔数向前或向后移动。

语法

DATEADD(<dates>,<number_of_intervals>,<interval>)

参数

术语 定义
dates 包含日期的列。
number_of_intervals 一个整数,指定要在日期中添加或减去的间隔数。
interval 要移动日期的间隔。 时间间隔的值可以是下列值之一:yearquartermonthday

返回值

包含单个日期值的列的表。

言论

dates 参数可以是以下任一参数:

  • 对日期/时间列的引用,

  • 返回日期/时间值的单个列的表表达式,

  • 一个布尔表达式,用于定义日期/时间值的单列表。

    注意

    本主题介绍了对布尔表达式的约束,CALCULATE 函数

  • 如果为 number_of_intervals 指定的数字为正数,则 dates 中的日期按时间向前移动;如果数字为负数,则 dates 中的日期将及时移回。

  • interval 参数是一个枚举,而不是一组字符串;因此不应将值括在引号中。 此外,值:yearquartermonthday 在使用它们时应完全拼写。

  • 结果表仅包含 dates 列中存在的日期。

  • 如果当前上下文中的日期不构成连续的间隔,该函数将返回错误。

  • 在计算列或行级别安全性 (RLS) 规则中使用时,不支持在 DirectQuery 模式下使用此函数。

示例 - 移动一组日期

以下公式计算当前上下文中日期之前的一年日期。

= DATEADD(DateTime[DateKey],-1,year)

特殊行为

当所选内容包括过去两天的月份时,DATEADD 将使用“扩展”语义,并将包含到月底的天数。 例如,当 2013 年 2 月 27 日和 28 日包含在所选内容中并添加一个月时,DATEADD 将返回 3 月 27 日至 31 日。

仅当选定内容包含过去两天的月份时,才会发生此行为。 如果仅选择了 2 月 27 日,它将转到 3 月 27 日。

= DATEADD(DateTime[DateKey], 1, month)

时间智能函数日期和时间函数