DATESINPERIOD

适用于:计算列计算表Measure视觉计算

备注

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

返回一个表,该表 contains 一列日期,该列以指定的开始 dateand 开头,date 间隔的指定数字 and 类型继续。

此函数适合作为 filter 传递给 CALCULATE 函数。 使用它按标准 date 间隔(如天、月、季度、or 年)来 filter 表达式。

语法

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

参数

术语 定义
dates date 列。
start_date date 表达式。
number_of_intervals 一个整数,指定要添加到日期 or 减去的间隔数。
interval 要移动日期的间隔。 时间间隔的 value 可以是以下项之一:DAYMONTHQUARTER、andYEAR

返回 value

包含单个列 datevalues的表。

言论

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

  • If 为 number_of_intervals 指定的数字为正数,日期在 time中向前移动;if 数字为负数,日期在 time后移。

  • interval 参数是一个枚举。 有效 values 为 DAYMONTHQUARTER、andYEAR。 因为它是枚举,因此不会以字符串的形式传入 values。 因此不要将它们括在引号内。

  • 返回的表只能包含存储在 dates 列中的日期。 例如,ifdates 列从 2017 年 7 月 1 日起开始,andstart_datevalue 为 2016 年 7 月 1 日,返回的表将从 2017 年 7 月 1 日起开始。

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

以下 Sales 表 measure 定义使用 DATESINPERIOD 函数为以前的 year(PY)calculate 收入。

请注意,公式使用 MAX 函数。 此函数返回 filter 上下文中的最新 date。 因此,DATESINPERIOD 函数从 lastyear的最新 date 开始返回日期表。

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

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

请考虑报表按 2020 年 6 月的 month 进行筛选。 MAX 函数返回 2020 年 6 月 30 日。 然后,DATESINPERIOD 函数从 2019 年 7 月 1 日至 2020 年 6 月 30 日返回 daterange。 从2020年6月30日起,datevalueslastyearyear。

Time 智能函数(DAX)
Date and time 函数(DAX)
DATESBETWEEN 函数(DAX)