Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Nota
Questa funzione è sconsigliata per l'uso nei calcoli visivi perché probabilmente restituisce risultati senza significato.
Se l'input è una colonna di data, restituisce una tabella contenente una colonna di date, spostata in avanti o indietro nel tempo in base al numero specificato di intervalli dalle date nel contesto corrente.
Se l'input è un calendario, la funzione restituisce date spostate in avanti o indietro nel tempo in base al numero specificato di intervalli, in base al contesto corrente. L'output include le colonne con tag primarie e le colonne correlate al tempo.
Sintassi
DATEADD(<dates> or <calendar>, <number_of_intervals>, <interval>[,<Extension>],[,<Truncation>])
Parametri
| Termine | Definizione |
|---|---|
dates or calendar |
Colonna contenente date o riferimenti al calendario. |
number_of_intervals |
Intero che specifica il numero di intervalli da aggiungere o sottrarre dalle date. |
interval |
Intervallo in base al quale spostare le date. Il valore per interval può essere uno dei seguenti: year, quarter, month, week, day. L'enumerazione della settimana è applicabile solo quando viene fornito un riferimento al calendario. |
extension |
Applicabile solo quando viene fornito un riferimento al calendario. Definire il comportamento quando il periodo di tempo originale ha meno date rispetto al periodo di tempo risultante. I valori validi sono: EXTENDING (Default), PRECISE, ENDALIGNED. |
truncation |
Applicabile solo quando viene fornito un riferimento al calendario. Definire il comportamento quando il periodo di tempo originale ha più date rispetto al periodo di tempo risultante. I valori validi sono: BLANKS (impostazione predefinita), ANCHORED. |
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 le colonne correlate all'ora per i periodi spostati, nel contesto corrente.
Osservazioni
L'argomento dates può essere uno dei seguenti:
Riferimento a una colonna di data/ora,
Espressione di tabella che restituisce una singola colonna di valori di data/ora,
Espressione booleana che definisce una tabella a colonna singola di valori di data/ora.
Nota
I vincoli sulle espressioni booleane sono descritti nell'argomento CALCULATE funzione.
Se il numero specificato per
number_of_intervalsè positivo, le date indatesvengono spostate in avanti nel tempo; se il numero è negativo, le date indatesvengono spostate indietro nel tempo.Il parametro
intervalè un'enumerazione, non un set di stringhe; pertanto i valori non devono essere racchiusi tra virgolette. Inoltre, i valori:year,quarter,month,daydevono essere digitati in modo completo quando vengono usati.La tabella dei risultati include solo le date presenti nella colonna
dates.Se viene utilizzata la sintassi della colonna di data e le date nel contesto corrente non formano un intervallo contiguo, la funzione restituisce un errore.
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 - Spostamento di un set di date
La formula seguente calcola le date di un anno prima delle date nel contesto corrente.
= DATEADD ( DateTime[DateKey], -1, YEAR )
Esempio di Business Intelligence per le gerarchie temporali basate su calendario
La formula seguente restituisce una tabella di date spostate di un anno dalle date nel contesto corrente.
DATEADD ( FiscalCalendar, -1, YEAR )
Comportamento speciale quando l'input è una colonna di data
Quando la selezione include gli ultimi due giorni del mese, DATEADD userà la semantica "estensione" e includerà i giorni fino alla fine del mese. Ad esempio, quando il 27 febbraio e il 28 del 2013 vengono inclusi nella selezione e viene aggiunto un mese, DATEADD restituirà il 27 marzo al 31.
Questo comportamento si verifica solo quando nella selezione sono inclusi gli ultimi due giorni del mese. Se viene selezionato solo il 27 febbraio, verrà visualizzato il 27 marzo.
= DATEADD(DateTime[DateKey], 1, month)
L'intelligence per le gerarchie temporali basata su calendario offre un maggiore controllo tramite due parametri facoltativi: "Estensione" e "Troncamento". Per informazioni dettagliate, vedere le descrizioni dei parametri precedenti.
Comportamento per la data basata sul calendarioAggiungi quando la selezione è a un livello più sottile rispetto al livello di spostamento
Quando si usa il riferimento al calendario e la selezione è a un livello più sottile rispetto al livello di spostamento, viene adottato un approccio basato su indice. Per illustrare questo comportamento, si consideri lo scenario in cui la selezione è a livello di data e DATEADD() viene spostata per mese. Ecco le operazioni che DateAdd eseguirà:
Determinare le posizioni della selezione corrente entro il mese.
Ad esempio, se la selezione corrente si estende dal 3 al 10 marzo, le posizioni sono dal 3 al 10° giorno del mese.Sposta il mese Applica il turno di mese, ad esempio un turno di +1 modifiche da marzo ad aprile.
Restituisce le stesse posizioni relative nel mese spostato Recupera il 3° al 10 del nuovo mese (ad esempio, 3-10 aprile).
Parametri per la data basata sul calendarioAggiungi quando la selezione è a un livello più fine rispetto al livello di spostamento
Quando la granularità della selezione è più fine dell'unità di spostamento (ad esempio, la selezione di singole date durante lo spostamento in base al mese), il comportamento basato sull'indice può causare ambiguità, in particolare nei mesi di lunghezze variabili. Per gestire questi casi limite, vengono introdotti due parametri:
Parametro di estensione (per piccoli → turni di periodi di grandi dimensioni):
Controlla il comportamento della funzione quando il periodo di destinazione è più lungo di quello corrente. Usare lo spostamento in avanti di un mese come esempio:
Precise: mantiene rigorosamente l'intervallo di date originale.
Feb 25–28→ →March 25–28Extending: consente alla finestra di espandersi verso la fine del periodo , se necessario.
Feb 25–28→ →March 25–31EndAligned: allinea la data di fine con la fine del periodo di destinazione quando la selezione raggiunge la fine del periodo; in caso contrario, mantiene le posizioni relative.
Feb 28→ →March 31, mentreFeb 27→March 27
Parametro di troncamento (per grandi → piccoli turni di periodo)
Controlla il comportamento della funzione quando il mese di destinazione è più breve di quello corrente. Usare lo spostamento indietro di un mese come esempio:
Anchored: ancora il risultato all'ultima data valida del periodo più piccolo.
March 31→ →Feb 28Blanks: restituisce vuoto quando la data spostata non esiste.
March 31→ → (vuoto) (dal 31 febbraio non è disponibile)
Differenze di comportamento tra la funzionalità classica e l'intelligence per le gerarchie temporali del calendario
Alcuni scenari possono produrre risultati diversi quando si confronta l'intelligenza temporale classica e quella del calendario. Ad esempio, in un anno lunare, SamePeriodLastYear produrrà risultati diversi con la granularità della data. Nell'intelligenza temporale basata sul calendario, spostando il 29 febbraio 2008 indietro di un anno si ottiene il 1° marzo 2007, perché viene trattato come il 60° giorno dell'anno. Nell'intelligenza temporale classica, lo stesso turno restituisce il 28 febbraio 2007. La soluzione alternativa consiste nell'usare DATEADD(Calendario, numero< di un anno>, mese). Ad esempio, se un anno ha 13 mesi nel calendario, usare DATEADD(Calendario, -13, mese). Questo approccio passerà di mese in modo che febbraio 2008 passerà a febbraio 2007.
Contenuto correlato
funzioni di Business Intelligence per le gerarchie temporalifunzioni di data e ora