Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
s’applique à :
colonne calculée
table calculée
mesure
calcul visuel
Note
Cette fonction est déconseillée pour une utilisation dans calculs visuels car elle retourne probablement des résultats sans signification.
Si l’entrée est une colonne de date, retourne une table qui contient une colonne de dates, décalée vers l’avant ou vers l’arrière par le nombre spécifié d’intervalles à partir des dates dans le contexte actuel.
Si l’entrée est un calendrier, la fonction retourne des dates décalées vers l’avant ou vers l’arrière par le nombre spécifié d’intervalles, en fonction du contexte actuel. La sortie inclut les colonnes marquées principales ainsi que les colonnes liées au temps.
Syntaxe
DATEADD(<dates> or <calendar>, <number_of_intervals>, <interval>[,<Extension>],[,<Truncation>])
Paramètres
| Terme | Définition |
|---|---|
dates or calendar |
Colonne qui contient des dates ou une référence de calendrier. |
number_of_intervals |
Entier qui spécifie le nombre d’intervalles à ajouter ou soustraire des dates. |
interval |
Intervalle par lequel déplacer les dates. La valeur de l’intervalle peut être l’une des suivantes : year, , quartermonth, week, . day L’énumération de semaine s’applique uniquement lorsqu’une référence de calendrier est fournie. |
extension |
Applicable uniquement lorsqu’une référence de calendrier est fournie. Définissez le comportement lorsque la période d’origine a moins de dates que la période résultante. Les valeurs valides sont : EXTENSION (valeur par défaut), PRECISE, ENDALIGNED. |
truncation |
Applicable uniquement lorsqu’une référence de calendrier est fournie. Définissez le comportement lorsque la période d’origine a plus de dates que la période résultante. Les valeurs valides sont : BLANKS (valeur par défaut), ANCHORED. |
Valeur de retour
Pour l’entrée de colonne de date, une table contenant une seule colonne de valeurs de date.
Pour l’entrée de calendrier, une table qui contient toutes les colonnes marquées principales et les colonnes associées à l’heure pour les périodes décalées, dans le contexte actuel.
Remarques
L’argument dates peut être l’un des éléments suivants :
Référence à une colonne de date/heure,
Expression de table qui retourne une seule colonne de valeurs de date/heure,
Expression booléenne qui définit une table à colonne unique de valeurs de date/heure.
Note
Les contraintes sur les expressions booléennes sont décrites dans la rubrique, CALCULATE fonction.
Si le nombre spécifié pour
number_of_intervalsest positif, les dates dansdatessont déplacées vers l’avant dans le temps ; si le nombre est négatif, les dates dansdatessont décalées dans le temps.Le paramètre
intervalest une énumération, et non un ensemble de chaînes ; par conséquent, les valeurs ne doivent pas être placées entre guillemets. En outre, les valeurs :year,quarter,month,daydoivent être orthographiés en intégralité lors de leur utilisation.La table de résultats inclut uniquement les dates qui existent dans la colonne
dates.Si la syntaxe de colonne de date est utilisée et que les dates dans le contexte actuel ne forment pas d’intervalle contigu, la fonction retourne une erreur.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery lorsqu’elle est utilisée dans les colonnes calculées ou les règles de sécurité au niveau des lignes (RLS).
Exemple : déplacement d’un ensemble de dates
La formule suivante calcule les dates qui sont d’un an avant les dates dans le contexte actuel.
= DATEADD ( DateTime[DateKey], -1, YEAR )
Exemple pour l’intelligence temporelle basée sur le calendrier
La formule suivante retourne un tableau de dates décalées d’un an à partir des dates dans le contexte actuel.
DATEADD ( FiscalCalendar, -1, YEAR )
Comportement spécial lorsque l’entrée est une colonne de date
Lorsque la sélection inclut les deux derniers jours du mois, DATEADD utilise la sémantique « extension » et inclut les jours jusqu’à la fin du mois. Par exemple, lorsque le 27 février et le 28 février 2013 sont inclus dans la sélection et qu’un mois est ajouté, DATEADD retournera le 27 mars au 31 mars.
Ce comportement se produit uniquement lorsque les deux derniers jours du mois sont inclus dans la sélection. Si seulement le 27 février est sélectionné, il passera au 27 mars.
= DATEADD(DateTime[DateKey], 1, month)
L’intelligence temporelle basée sur le calendrier fournit davantage de contrôle via deux paramètres facultatifs : « Extension » et « Troncation ». Pour plus d’informations, consultez les descriptions des paramètres ci-dessus.
Comportement pour dateAdd basé sur le calendrier lorsque la sélection est à un grain plus fin que le niveau de décalage
Lorsque la référence de calendrier est utilisée et que la sélection est plus fine que le niveau de décalage, une approche basée sur l’index est prise. Pour illustrer ce comportement, prenons le scénario dans lequel la sélection est au niveau de la date et DATEADD() change par mois. Voici ce que DateAdd fera :
Déterminez les positions de la sélection actuelle dans le mois.
Par exemple, si la sélection actuelle s’étend du 3 au 10 mars, les positions sont comprises entre le 3e et le 10e jour du mois.Maj du mois Appliquer le décalage du mois ( par exemple, un décalage de +1 change mars à avril).
Retournez les mêmes positions relatives dans le mois décalé Récupérer le 3e au 10e du nouveau mois (par exemple, le 3 au 10 avril).
Paramètres pour dateAdd basé sur le calendrier lorsque la sélection est à un grain plus fin que le niveau de décalage
Lorsque la granularité de sélection est plus fine que l’unité de décalage (par exemple, la sélection de dates individuelles pendant le déplacement par mois), le comportement basé sur l’index peut entraîner des ambiguïtés, en particulier sur des mois de longueurs variables. Pour gérer ces cas de périphérie, deux paramètres sont introduits :
Paramètre d’extension (pour les petites → les décalages de période volumineux) :
Contrôle le comportement de la fonction lorsque la période de destination est plus longue que celle actuelle. Utilisez avancer un mois comme exemple :
Precise: conserve strictement la plage de dates d’origine.
Feb 25–28→ →March 25–28Extending: permet à la fenêtre de se développer vers la fin de la période si nécessaire.
Feb 25–28→ →March 25–31EndAligned: aligne la date de fin avec la fin de la période de destination lorsque la sélection atteint la fin de sa période ; dans le cas contraire, conserve les positions relatives.
Feb 28→ →March 31, tandis queFeb 27→March 27
Paramètre de troncation (pour les grandes → petits décalages de période)
Contrôle le comportement de la fonction lorsque le mois de destination est plus court que celui actuel. Utilisez le déplacement vers l’arrière un mois comme exemple :
Anchored: ancre le résultat à la dernière date valide de la période plus petite.
March 31→ →Feb 28Blanks: retourne vide lorsque la date décalée n’existe pas.
March 31→ → (vide) (depuis février n’a pas le 31e)
Différences de comportement entre l’intelligence temporelle classique et le calendrier
Certains scénarios peuvent produire des résultats différents lors de la comparaison de l’intelligence temporelle classique et du calendrier. Par exemple, dans une année lunaire, SamePeriodLastYear produit des résultats différents à la granularité de date. Dans les informations temporelles basées sur le calendrier, le passage du 29 février 2008 à l’arrière d’une année entraîne le 1er mars 2007, car il est traité comme le 60e jour de l’année. Dans l’intelligence temporelle classique, le même décalage retourne le 28 février 2007. La solution de contournement consiste à utiliser DATEADD(Calendrier, -<nombre d’un an>, mois). Par exemple, si une année a 13 mois dans le calendrier, utilisez DATEADD(Calendrier, -13, mois). Cette approche va passer d’un mois à l’autre pour que février 2008 passe à février 2007.