Partager via


DATEADD

s’applique à :colonne calculéetable calculéemesurecalcul 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_intervals est positif, les dates dans dates sont déplacées vers l’avant dans le temps ; si le nombre est négatif, les dates dans dates sont décalées dans le temps.

  • Le paramètre interval est 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, day doivent ê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–28

  • Extending: permet à la fenêtre de se développer vers la fin de la période si nécessaire.
    Feb 25–28 → →March 25–31

  • EndAligned: 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 que Feb 27March 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 28

  • Blanks: 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.

fonctions Time Intelligencefonctions Date et heure