DATESBETWEEN

gäller för:beräknad kolumnberäknad tabellMåttVisuell beräkning

Not

Den här funktionen rekommenderas inte för användning i visuella beräkningar eftersom den sannolikt returnerar meningslösa resultat.

För datumkolumnindata returnerar en tabell som innehåller en kolumn med datum som börjar med ett angivet startdatum och fortsätter till ett angivet slutdatum.

För kalenderindata returnerar en tabell som börjar med ett angivet startdatum och fortsätter till ett angivet slutdatum. Tabellen innehåller alla primära taggade kolumner och alla tidsrelaterade kolumner.

Den här funktionen passar för att skicka som ett filter till funktionen CALCULATE. Använd det för att filtrera ett uttryck efter ett anpassat datumintervall.

Not

Om du arbetar med standarddatumintervall som dagar, månader, kvartal eller år använder du den bättre lämpade DATESINPERIOD funktionen.

Syntax

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

Parametrar

Term Definition
dates or calendar En kolumn som innehåller datum eller en kalenderreferens
StartDate Ett datum/dag-uttryck. Om du använder kalendersyntax använder du samma datatyp som den primära kolumnen som är taggad till kategorin Dag.
EndDate Ett datum/dag-uttryck. Om du använder kalendersyntax använder du samma datatyp som den primära kolumnen som är taggad till kategorin Dag.

Returvärde

För datumkolumnindata, en tabell som innehåller en enda kolumn med datumvärden.
För kalenderindata, en tabell som innehåller alla primära taggade kolumner och alla tidsrelaterade kolumner.

Anmärkningar

  • I det vanligaste användningsfallet är dates en referens till datumkolumnen i en markerad datumtabell.

  • Om StartDate är BLANKär är det det StartDate tidigaste värdet i dates kolumnen. För kalender är det det första värdet i en kolumn som taggas som dag.

  • Om EndDate är BLANKär är det det EndDate senaste värdet i dates kolumnen. För kalendern är det det sista värdet i en kolumn som taggas som dag.

  • Datum som används som StartDate och EndDate är inkluderande. Om värdet till exempel StartDate är 1 juli 2019 inkluderas det datumet i den returnerade tabellen (förutsatt att datumet finns i dates kolumnen).

  • För datumkolumnindata kan den returnerade tabellen bara innehålla datum som lagras i Dates kolumnen. Om kolumnen till exempel börjar från den Dates 1 juli 2017 och StartDate värdet är 1 juli 2016 börjar den returnerade tabellen från den 1 juli 2017.

  • För kalenderindata, om indatadatumet inte hittas i kolumnen taggad dag, behandlas det som BLANK, och det första eller sista värdet används.

  • För kalenderindata använder du samma datatyp och format som kolumnen taggad dag för startdatum och slutdatum. Om kolumnen till exempel använder formatet YYYY-Sn-Qn-Mnn-Wnn-Dnn (t.ex. "2014-S2-Q4-M11-W45-D03"), måste startdatum och slutdatum följa samma format (t.ex. "2015-S2-Q4-M11-W45-D03"). Annars är beteendet odefinierat.

  • Den här funktionen stöds inte för användning i DirectQuery-läge när den används i beräknade kolumner eller säkerhetsregler på radnivå (RLS).

Exempel

Följande Sales tabellmåttdefinition använder funktionen DATESBETWEEN för att skapa en hittills (LTD). Life-to-date representerar ackumuleringen av ett mått över tid sedan tidens början.

Formeln använder MAX funktionen. Den här funktionen returnerar det senaste datumet som finns i filterkontexten. Funktionen DATESBETWEEN returnerar därför en tabell med datum som börjar från det tidigaste datumet till det senaste datumet som rapporteras.

Exempel i den här artikeln kan användas med exempelmodellen Adventure Works DW 2020 Power BI Desktop. Information om hur du hämtar modellen finns i DAX exempelmodell.

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

Tänk på att det tidigaste datumet som lagras i tabellen Date är den 1 juli 2017. När en rapport filtrerar måttet efter juni 2020 returnerar funktionen DATESBETWEEN ett datumintervall från 1 juli 2017 till 30 juni 2020.

Exempel på kalenderbaserad tidsinformation

Följande Sales tabellmåttdefinition använder funktionen DATESBETWEEN för att skapa en hittills (LTD). Life-to-date representerar ackumuleringen av ett mått över tid sedan tidens början.

Formeln använder MAX funktionen. Den här funktionen returnerar den maximala datekey som finns i filterkontexten. Funktionen DATESBETWEEN returnerar därför en tabell med datum som börjar från det tidigaste datumet till det senaste datumet som rapporteras. Vi använder DateKey som exempel för att visa att kategorin "Day" kan taggas med en kolumn som inte är datumtypad.

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