Condividi tramite


DATESBETWEEN

Si applica a:colonna calcolatatabella calcolata calcolo visivomisura

Nota

Questa funzione è sconsigliata per l'uso nei calcoli visivi perché probabilmente restituisce risultati senza significato.

Per l'input della colonna data, restituisce una tabella contenente una colonna di date che inizia con una data di inizio specificata e continua fino a una data di fine specificata.

Per l'input del calendario, restituisce una tabella che inizia con una data di inizio specificata e continua fino a una data di fine specificata. La tabella contiene tutte le colonne con tag primarie e tutte le colonne correlate all'ora.

Questa funzione è adatta per passare come filtro alla funzione CALCULATE. Usarlo per filtrare un'espressione in base a un intervallo di date personalizzato.

Nota

Se si usano intervalli di data standard, ad esempio giorni, mesi, trimestri o anni, è consigliabile usare la funzione di DATESINPERIOD più adatta.

Sintassi

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

Parametri

Termine Definizione
dates or calendar Colonna contenente date o riferimenti al calendario
StartDate Espressione data/giorno. Se viene usata la sintassi del calendario, usare lo stesso tipo di dati della colonna primaria contrassegnata nella categoria Day.
EndDate Espressione data/giorno. Se viene usata la sintassi del calendario, usare lo stesso tipo di dati della colonna primaria contrassegnata nella categoria Day.

Valore restituito

Per l'input della colonna data, una tabella contenente una singola colonna di valori di data.
Per l'input del calendario, una tabella che contiene tutte le colonne con tag primarie e tutte le colonne correlate.

Osservazioni

  • Nel caso d'uso più comune, dates è un riferimento alla colonna data di una tabella data contrassegnata.

  • Se StartDate è BLANK, StartDate sarà il valore meno recente nella colonna dates. Per il calendario, sarà il primo valore nella colonna contrassegnato come giorno.

  • Se EndDate è BLANK, EndDate sarà il valore più recente nella colonna dates. Per il calendario, sarà l'ultimo valore nella colonna contrassegnato come giorno.

  • Le date utilizzate come StartDate e EndDate sono incluse. Ad esempio, se il valore StartDate è il 1° luglio 2019, tale data verrà inclusa nella tabella restituita (specificando che la data esiste nella colonna dates).

  • Per l'input della colonna data, la tabella restituita può contenere solo le date archiviate nella Dates colonna. Ad esempio, se la colonna Dates inizia dal 1° luglio 2017 e il valore StartDate è 1 luglio 2016, la tabella restituita inizierà dal 1° luglio 2017.

  • Per l'input del calendario, se la data di input non viene trovata nella colonna giorno con tag, verrà considerata come BLANK e quindi verrà usato il primo/ultimo valore.

  • Per l'input del calendario, usare lo stesso tipo di dati e formato della colonna giorno con tag per la data di inizio e la data di fine. Ad esempio, se la colonna usa il formato YYYY-Sn-Qn-Mnn-Wnn-Dnn (ad esempio, "2014-S2-Q4-M11-W45-D03"), la data di inizio e la data di fine devono seguire lo stesso formato ,ad esempio "2015-S2-Q4-M11-W45-D03"). In caso contrario, il comportamento non è definito.

  • Questa funzione non è supportata per l'uso in modalità DirectQuery quando viene usata nelle colonne calcolate o nelle regole di sicurezza a livello di riga.

Esempio

La definizione di misura della tabella sales seguente utilizza la funzione per produrre un calcolo (LTD). La durata rappresenta l'accumulo di una misura nel tempo sin dall'inizio del tempo.

Si noti che la formula usa la funzione MAX. Questa funzione restituisce la data più recente presente nel contesto del filtro. Pertanto, la funzione DATESBETWEEN restituisce una tabella di date che iniziano dalla prima data fino alla data più recente segnalata.

Gli esempi in questo articolo possono essere usati con il modello adventure works DW 2020 di Power BI Desktop di esempio. Per ottenere il modello, vedere DAX modello di esempio.

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

Si consideri che la data meno recente archiviata nella tabella data data è il 1° luglio 2017. Pertanto, quando un report filtra la misura in base al mese di giugno 2020, la funzione DATESBETWEEN restituisce un intervallo di date compreso tra il 1° luglio 2017 e il 30 giugno 2020.

Esempio di Business Intelligence per le gerarchie temporali basate su calendario

La definizione di misura della tabella sales seguente utilizza la funzione per produrre un calcolo (LTD). La durata rappresenta l'accumulo di una misura nel tempo sin dall'inizio del tempo.

Si noti che la formula usa la funzione MAX. Questa funzione restituisce il valore datekey massimo presente nel contesto del filtro. Pertanto, la funzione DATESBETWEEN restituisce una tabella di date che iniziano dalla prima data fino alla data più recente segnalata. DateKey viene usato come esempio per indicare che la categoria "Day" può essere contrassegnata con una colonna non tipizzata da date

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