DATESINPERIOD

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

注意

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

返回一个表,该表包含一列以指定开始日期开头的日期,并针对指定的日期间隔数和类型继续。

此函数适合作为筛选器传递给 CALCULATE 函数。 使用它按标准日期间隔(如天、月、季度或年份)筛选表达式。

语法

DATESINPERIOD(<dates>, <start_date>, <number_of_intervals>, <interval>)

参数

术语 定义
dates 日期列。
start_date 日期表达式。
number_of_intervals 一个整数,指定要添加到日期或减去日期的间隔数。
interval 要移动日期的间隔。 时间间隔的值可以是下列值之一:DAYMONTHQUARTERYEAR

返回值

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

言论

  • 在最常见的用例中,dates 是对标记日期表的日期列的引用。

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

  • interval 参数是一个枚举。 有效值为 DAYMONTHQUARTERYEAR。 因为它是枚举,因此值不会作为字符串传入。 因此不要将它们括在引号内。

  • 返回的表只能包含存储在 dates 列中的日期。 因此,例如,如果 dates 列从 2017 年 7 月 1 日起开始,并且 start_date 值为 2016 年 7 月 1 日,则返回的表将从 2017 年 7 月 1 日起开始。

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

以下 Sales 表度量值定义使用 DATESINPERIOD 函数计算上一年(PY)的收入。

请注意,公式使用 MAX 函数。 此函数返回筛选器上下文中的最新日期。 因此,DATESINPERIOD 函数返回一个日期表,该表从去年的最新日期开始。

本文中的示例可用于示例 Adventure Works DW 2020 Power BI Desktop 模型。 若要获取模型,请参阅 DAX 示例模型

Revenue PY =
CALCULATE(
    SUM(Sales[Sales Amount]),
    DATESINPERIOD(
        'Date'[Date],
        MAX('Date'[Date]),
        -1,
        YEAR
    )
)

请考虑报表按 2020 年 6 月的月份进行筛选。 MAX 函数返回 2020 年 6 月 30 日。 然后,DATESINPERIOD 函数返回日期范围从 2019 年 7 月 1 日到 2020 年 6 月 30 日。 它是从 2020 年 6 月 30 日开始的一年日期值。

时间智能函数(DAX)日期和时间函数 (DAX)DATESBETWEEN 函数 (DAX)