DATESBETWEEN

Dotyczy:kolumna obliczeniowatabela obliczeniowaMiarawizualizacji

Nuta

Ta funkcja jest zniechęcana do użycia w obliczeniach wizualizacji , ponieważ prawdopodobnie zwraca wyniki bez znaczenia.

W przypadku danych wejściowych w kolumnie daty zwraca tabelę zawierającą kolumnę dat rozpoczynającą się od określonej daty rozpoczęcia i trwa do określonej daty zakończenia.

W przypadku danych wejściowych kalendarza zwraca tabelę rozpoczynającą się od określonej daty rozpoczęcia i trwa do określonej daty zakończenia. Tabela zawiera wszystkie podstawowe otagowane kolumny i wszystkie powiązane kolumny czasu.

Ta funkcja jest odpowiednia do przekazania jako filtru do funkcji CALCULATE. Służy do filtrowania wyrażenia według niestandardowego zakresu dat.

Nuta

Jeśli pracujesz z standardowymi interwałami dat, takimi jak dni, miesiące, kwartały lub lata, użyj lepiej dopasowanej DATESINPERIOD funkcji.

Składnia

DATESBETWEEN(<dates or calendar>, <StartDate>, <EndDate>)

Parametry

Termin Definicja
dates or calendar Kolumna zawierająca daty lub odwołanie do kalendarza
StartDate Wyrażenie daty/dnia. Jeśli używasz składni kalendarza, użyj tego samego typu danych co kolumna podstawowa otagowana do kategorii Dzień.
EndDate Wyrażenie daty/dnia. Jeśli używasz składni kalendarza, użyj tego samego typu danych co kolumna podstawowa otagowana do kategorii Dzień.

Wartość zwracana

W przypadku danych wejściowych kolumn daty tabela zawierająca jedną kolumnę wartości daty.
W przypadku danych wejściowych kalendarza tabela zawierająca wszystkie podstawowe oznaczone kolumny i wszystkie powiązane kolumny czasu.

Uwagi

  • W najczęstszym przypadku użycia dates jest odwołaniem do kolumny dat oznaczonej tabeli dat.

  • Jeśli StartDate wartość to BLANK, StartDate jest najwcześniejszą wartością w kolumnie dates . W przypadku kalendarza jest to pierwsza wartość w kolumnie oznaczonej jako dzień.

  • Jeśli EndDate wartość to BLANK, jest to EndDate najnowsza wartość w kolumnie dates . W przypadku kalendarza jest to ostatnia wartość w kolumnie oznaczonej jako dzień.

  • Daty używane jako StartDate i EndDate są włącznie. Na przykład jeśli StartDate wartość to 1 lipca 2019 r., data ta jest uwzględniona w zwracanej tabeli (podając, że data istnieje w kolumnie dates ).

  • W przypadku danych wejściowych kolumn daty zwracana tabela może zawierać tylko daty przechowywane w kolumnie Dates . Na przykład jeśli kolumna Dates rozpoczyna się od 1 lipca 2017 r., a StartDate wartość to 1 lipca 2016 r., zwracana tabela rozpoczyna się od 1 lipca 2017 r.

  • W przypadku danych wejściowych kalendarza, jeśli data wejściowa nie zostanie znaleziona w kolumnie z tagiem dzień, jest traktowana jako BLANK, a pierwsza lub ostatnia wartość jest używana.

  • W przypadku danych wejściowych kalendarza użyj tego samego typu danych i formatu co otagowany kolumna dnia dla daty rozpoczęcia i daty zakończenia. Jeśli na przykład kolumna używa formatu RRRR-Sn-Qn-Mnn-Wnn-Dnn (np. "2014-S2-Q4-M11-W45-D03"), data rozpoczęcia i data zakończenia muszą być zgodne z tym samym formatem (np. "2015-S2-Q4-M11-W45-D03"). W przeciwnym razie zachowanie jest niezdefiniowane.

  • Ta funkcja nie jest obsługiwana w trybie DirectQuery w przypadku użycia w kolumnach obliczeniowych lub regułach zabezpieczeń na poziomie wiersza.

Przykład

Poniższa definicja miary tabeli Sales używa funkcji DATESBETWEEN do utworzenia bieżącego obliczenia (LTD). Okres istnienia oznacza akumulację miary w czasie od samego początku czasu.

Formuła używa MAX funkcji . Ta funkcja zwraca najnowszą datę w kontekście filtru. Dlatego funkcja DATESBETWEEN zwraca tabelę dat rozpoczynającą się od najwcześniejszej daty do najnowszej daty zgłaszanej.

Przykłady w tym artykule mogą być używane z przykładowym modelem Adventure Works DW 2020 Power BI Desktop. Aby uzyskać model, zobacz DAX przykładowy model.

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

Należy wziąć pod uwagę, że najwcześniejsza data przechowywana w tabeli Date to 1 lipca 2017 r. Dlatego gdy raport filtruje miarę według miesiąca czerwca 2020 r., funkcja DATESBETWEEN zwraca zakres dat z 1 lipca 2017 r. do 30 czerwca 2020 r.

Przykład analizy czasowej opartej na kalendarzu

Poniższa definicja miary tabeli Sales używa funkcji DATESBETWEEN do utworzenia bieżącego obliczenia (LTD). Okres istnienia oznacza akumulację miary w czasie od samego początku czasu.

Formuła używa MAX funkcji . Ta funkcja zwraca maksymalny klucz daty w kontekście filtru. Dlatego funkcja DATESBETWEEN zwraca tabelę dat rozpoczynającą się od najwcześniejszej daty do najnowszej daty zgłaszanej. Jako przykład używamy wartości DateKey, aby pokazać, że kategorię "Dzień" można oznaczyć kolumną, która nie jest typowana datą.

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