Delen via


DATESBETWEEN

Van toepassing op:berekende kolomberekende tabelMetingVisuele berekening

Notitie

Deze functie wordt afgeraden voor gebruik in visuele berekeningen omdat deze waarschijnlijk betekenisloze resultaten oplevert.

Retourneert voor datumkolominvoer een tabel die een kolom met datums bevat die begint met een opgegeven begindatum en doorgaat tot een opgegeven einddatum.

Voor agenda-invoer wordt een tabel geretourneerd die begint met een opgegeven begindatum en doorgaat tot een opgegeven einddatum. De tabel bevat alle primaire gelabelde kolommen en alle tijd gerelateerde kolommen.

Deze functie is geschikt om als filter door te geven aan de CALCULATE functie. Gebruik deze om een expressie te filteren op een aangepast datumbereik.

Notitie

Als u werkt met standaarddatumintervallen zoals dagen, maanden, kwartalen of jaren, wordt u aangeraden de beter geschikte DATESINPERIOD functie te gebruiken.

Syntaxis

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

Parameters

Term Definitie
dates or calendar Een kolom die datums of een kalenderreferentie bevat
StartDate Een datum/dag-expressie. Als de syntaxis van de agenda wordt gebruikt, gebruikt u hetzelfde gegevenstype als de primaire kolom die is getagd aan de categorie Dag.
EndDate Een datum/dag-expressie. Als de syntaxis van de agenda wordt gebruikt, gebruikt u hetzelfde gegevenstype als de primaire kolom die is getagd aan de categorie Dag.

Retourwaarde

Voor datumkolominvoer is een tabel met één kolom met datumwaarden.
Voor agenda-invoer, een tabel die alle primaire gelabelde kolommen en alle tijd gerelateerde kolommen bevat.

Opmerkingen

  • In het meest voorkomende gebruiksvoorbeeld is dates een verwijzing naar de datumkolom van een gemarkeerde datumtabel.

  • Als StartDateBLANKis, is StartDate de vroegste waarde in de kolom dates. Voor agenda is dit de eerste waarde in de kolom die is gelabeld als dag.

  • Als EndDate is BLANK, is EndDate de meest recente waarde in de kolom dates. Voor agenda is dit de laatste waarde in de kolom die is gelabeld als dag.

  • Datums die worden gebruikt als de StartDate en EndDate zijn inclusief. Als de StartDate waarde bijvoorbeeld 1 juli 2019 is, wordt die datum opgenomen in de geretourneerde tabel (mits de datum bestaat in de kolom dates).

  • Voor datumkolominvoer kan de geretourneerde tabel alleen datums bevatten die zijn opgeslagen in de Dates kolom. Als de kolom Dates bijvoorbeeld begint vanaf 1 juli 2017 en de StartDate waarde 1 juli 2016 is, begint de geretourneerde tabel vanaf 1 juli 2017.

  • Als de invoerdatum niet wordt gevonden in de kolom met gelabelde dagen, wordt deze behandeld als BLANK en wordt de eerste/laatste waarde dus gebruikt.

  • Voor agenda-invoer gebruikt u hetzelfde gegevenstype en dezelfde notatie als de kolom met gelabelde dagen voor de begin- en einddatum. Als de kolom bijvoorbeeld de notatie JJJJ-Sn-Qn-Mnn-Wnn-Dnn gebruikt (bijvoorbeeld '2014-S2-Q4-M11-W45-D03'), moet de begin- en einddatum dezelfde notatie hebben (bijvoorbeeld '2015-S2-Q4-M11-W45-D03'). Anders is het gedrag niet gedefinieerd.

  • Deze functie wordt niet ondersteund voor gebruik in de DirectQuery-modus wanneer deze wordt gebruikt in regels voor beveiliging op rijniveau (berekende kolommen of beveiliging op rijniveau).

Voorbeeld

In de volgende definitie van Sales tabelmeting wordt de functie DATESBETWEEN gebruikt om een berekening van levensduur tot heden te produceren (LTD). Levensduur tot heden vertegenwoordigt de accumulatie van een meting in de loop van de tijd sinds het begin van de tijd.

U ziet dat de formule gebruikmaakt van de functie MAX. Deze functie retourneert de laatste datum die zich in de filtercontext bevindt. De functie DATESBETWEEN retourneert dus een tabel met datums vanaf de vroegste datum tot de laatste datum die wordt gerapporteerd.

Voorbeelden in dit artikel kunnen worden gebruikt met het voorbeeldmodel Adventure Works DW 2020 Power BI Desktop. Zie DAX voorbeeldmodelom het model op te halen.

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

Houd er rekening mee dat de vroegste datum die is opgeslagen in de tabel Datum 1 juli 2017 is. Dus wanneer een rapport de meting filtert op de maand juni 2020, retourneert de functie DATESBETWEEN een datumbereik van 1 juli 2017 tot 30 juni 2020.

Voorbeeld voor tijdintelligentie op basis van agenda

In de volgende definitie van Sales tabelmeting wordt de functie DATESBETWEEN gebruikt om een berekening van levensduur tot heden te produceren (LTD). Levensduur tot heden vertegenwoordigt de accumulatie van een meting in de loop van de tijd sinds het begin van de tijd.

U ziet dat de formule gebruikmaakt van de functie MAX. Deze functie retourneert de maximale datumsleutel die zich in de filtercontext bevindt. De functie DATESBETWEEN retourneert dus een tabel met datums vanaf de vroegste datum tot de laatste datum die wordt gerapporteerd. DateKey wordt gebruikt als voorbeeld om aan te geven dat de categorie 'Dag' kan worden gelabeld met een kolom die niet is getypt op datum

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