注意
不建議將此函式用於 視覺計算,因為它可能會傳回毫無意義的結果。
對於日期欄輸入,傳回一個表格,其中包含以指定開始日期開頭並持續到指定結束日期的日期欄。
對於行事曆輸入,傳回以指定開始日期開始並持續到指定結束日期為止的表格。 表格包含所有主要標記欄和所有時間相關欄。
此函式適合當做篩選傳遞至 CALCULATE 函式。 使用它依自定義日期範圍來篩選表達式。
注意
如果你使用的是標準日期間隔,如天、月、季度或年份,請使用更合適的 DATESINPERIOD 函數。
語法
DATESBETWEEN(<dates or calendar>, <StartDate>, <EndDate>)
參數
| 術語 | 定義 |
|---|---|
dates or calendar |
包含日期或行事曆參照的資料行 |
StartDate |
日期/日期運算式。 如果你使用日曆語法,請使用與標記為「日」類別的主要欄位相同的資料類型。 |
EndDate |
日期/日期運算式。 如果你使用日曆語法,請使用與標記為「日」類別的主要欄位相同的資料類型。 |
傳回值
對於日期欄輸入,包含單欄日期值的資料表。
對於行事曆輸入,包含所有主要標記欄和所有時間相關欄的表格。
言論
在最常見的使用案例中,
dates是標示日期數據表之日期數據行的參考。若
StartDate, BLANK則StartDate是該欄中最早的dates值。 對日曆來說,是標記為「日」的欄位中第一個值。若
EndDate, BLANK則EndDate是該欄中dates最新的值。 對日曆來說,是標記為日期欄位的最後一個值。作為
StartDate和EndDate使用的日期是包含的。 舉例來說,如果值是StartDate2019 年 7 月 1 日,那麼該日期會包含在回傳的表格中(前提是該日期在欄位dates中)。對於日期欄輸入,傳回的表格只能包含儲存在欄中的
Dates日期。 舉例來說,如果欄位Dates從 2017 年 7 月 1 日開始,且StartDate值是 2016 年 7 月 1 日,則回傳的表格會從 2017 年 7 月 1 日開始。對於日曆輸入,如果輸入日期不在標記的日期欄位中,則視為 BLANK,並使用第一個或最後一個值。
對於行事曆輸入,請使用與開始日期和結束日期的標記日期欄相同的資料類型和格式。 例如,如果欄使用 YYYY-Sn-Qn-Mnn-Wnn-Dnn 格式(例如「2014-S2-Q4-M11-W45-D03」),則開始日期和結束日期必須遵循相同的格式(例如「2015-S2-Q4-M11-W45-D03」)。 否則,行為未定義。
-
在匯出數據行或數據列層級安全性 (RLS) 規則中使用時,不支援在 DirectQuery 模式中使用此函式。
例
下列 Sales 資料表量值定義會使用 DATESBETWEEN 函數來產生 至今 (LTD) 計算。 生活到最新狀態代表自時間開始以來一段時間的量值累積。
該公式使用函 MAX 數。 此函式會傳回篩選內容中的最新日期。 因此,DATESBETWEEN 函式會傳回從最早日期到報告最新日期的日期數據表。
本文中的範例可以搭配範例 Adventure Works DW 2020 Power BI Desktop 模型使用。 若要取得模型,請參閱 DAX 範例模型。
Customers LTD =
CALCULATE (
DISTINCTCOUNT ( Sales[CustomerKey] ),
DATESBETWEEN ( 'Date'[Date], BLANK (), MAX ( 'Date'[Date] ) )
)
請考慮儲存在 Date 數據表中的最早日期是 2017 年 7 月 1 日。 因此,當報表依 2020 年 6 月的月份篩選量值時,DATESBETWEEN 函式會傳回 2017 年 7 月 1 日至 2020 年 6 月 30 日的日期範圍。
行事曆型時間智慧範例
下列 Sales 資料表量值定義會使用 DATESBETWEEN 函數來產生 至今 (LTD) 計算。 生活到最新狀態代表自時間開始以來一段時間的量值累積。
該公式使用函 MAX 數。 此函式會傳回篩選內容中的最大日期索引鍵。 因此,DATESBETWEEN 函式會傳回從最早日期到報告最新日期的日期數據表。 我們以 DateKey 為例,說明「Day」類別可以標註非日期類型的欄位。
Customers LTD =
CALCULATE (
DISTINCTCOUNT ( Sales[CustomerKey] ),
DATESBETWEEN ( FiscalCalendar, BLANK (), MAX ( 'Date'[DateKey] ) )
)