DATESBETWEEN

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

注意

不建议在视觉对象计算中使用此函数,因为它可能会返回无意义的结果。

返回一个包含一列日期的表,这些日期以指定开始日期,一直持续到指定的结束日期。

此函数适合作为筛选器传递给 CALCULATE 函数。 可用它来按自定义日期范围筛选表达式。

注意

如果你使用标准的日期间隔(例如天、月份、季度或年份),则建议使用更适合的 DATESINPERIOD 函数。

语法

DATESBETWEEN(<Dates>, <StartDate>, <EndDate>)

parameters

术语 定义
日期 日期列。
StartDate 日期表达式。
EndDate 日期表达式。

返回值

包含单列日期值的表。

备注

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

  • 如果 StartDate 为空,则 StartDate 将是“Dates”列中的最早值。

  • 如果 EndDate 为空,则 EndDate 将是“Dates”列中的最晚值。

  • 用作 StartDate 和 EndDate 的日期包括在内。 因此例如,如果 StartDate 值为 2019 年 7 月 1 日,则该日期将包含在已返回的表中(前提是“Dates”列中存在该日期)。

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

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

示例

“销售”表的下列度量值定义使用 DATESBETWEEN 函数得出开始使用至今 (LTD) 的计算结果。 “开始使用至今”表示从最开始起一段时间内的度量值累计。

请注意,该公式使用 MAX 函数。 此函数会返回筛选器上下文中的最新日期。 因此,DATESBETWEEN 函数返回的日期表是从最早的日期开始,一直到报告的最新日期为止。

可将本文中的示例与 Adventure Works DW 2020 示例模型结合使用。 若要获取模型,请参阅 DAX 示例模型

Customers LTD =
CALCULATE(
    DISTINCTCOUNT(Sales[CustomerKey]),
    DATESBETWEEN(
        'Date'[Date],  
        BLANK(),  
        MAX('Date'[Date])  
    )
)

请注意“日期”表中存储的最早日期是 2017 年 7 月 1 日。 因此,当报表按 2020 年 6 月对度量值进行筛选时,DATESBETWEEN 函数返回的日期范围为 2017 年 7 月 1 日至 2020 年 6 月 30 日。