Partager via


DATESBETWEEN

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.

Pour l’entrée de colonne de date, retourne une table qui contient une colonne de dates qui commence par une date de début spécifiée et continue jusqu’à une date de fin spécifiée.

Pour l’entrée de calendrier, retourne une table qui commence par une date de début spécifiée et se poursuit jusqu’à une date de fin spécifiée. La table contient toutes les colonnes marquées principales et toutes les colonnes associées à l’heure.

Cette fonction est adaptée à passer en tant que filtre à la fonction CALCULATE. Utilisez-la pour filtrer une expression selon une plage de dates personnalisée.

Note

Si vous travaillez avec des intervalles de date standard tels que des jours, des mois, des trimestres ou des années, il est recommandé d’utiliser la fonction DATESINPERIOD mieux adaptée.

Syntaxe

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

Paramètres

Terme Définition
dates or calendar Colonne qui contient des dates ou une référence de calendrier
StartDate Expression date/jour. Si la syntaxe du calendrier est utilisée, utilisez le même type de données que la colonne principale étiquetée dans la catégorie Jour.
EndDate Expression date/jour. Si la syntaxe du calendrier est utilisée, utilisez le même type de données que la colonne principale étiquetée dans la catégorie Jour.

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 toutes les colonnes associées à l’heure.

Remarques

  • Dans le cas d’usage le plus courant, dates est une référence à la colonne date d’une table de dates marquée.

  • Si StartDate est BLANK, StartDate sera la valeur la plus ancienne dans la colonne dates. Pour le calendrier, il s’agit de la première valeur de la colonne marquée comme jour.

  • Si EndDate est BLANK, EndDate sera la valeur la plus récente dans la colonne dates. Pour le calendrier, il s’agit de la dernière valeur de la colonne marquée comme jour.

  • Les dates utilisées comme StartDate et les EndDate sont inclusives. Par exemple, si la valeur StartDate est le 1er juillet 2019, cette date sera incluse dans la table retournée (en indiquant que la date existe dans la colonne dates).

  • Pour l’entrée de colonne de date, la table retournée ne peut contenir que des dates stockées dans la Dates colonne. Par exemple, si la colonne Dates commence à partir du 1er juillet 2017 et que la valeur StartDate est le 1er juillet 2016, la table retournée commence à partir du 1er juillet 2017.

  • Pour les entrées de calendrier, si la date d’entrée n’est pas trouvée dans la colonne jour marquée, elle sera traitée comme BLANK et par conséquent la première/dernière valeur sera utilisée.

  • Pour les entrées de calendrier, utilisez le même type de données et le même format que la colonne jour balisée pour la date de début et la date de fin. Par exemple, si la colonne utilise le format AAAA-Sn-Qn-Mnn-Wnn-Dnn (par exemple, « 2014-S2-Q4-M11-W45-D03 »), la date de début et la date de fin doivent suivre le même format (par exemple, « 2015-S2-Q4-M11-W45-D03 »). Sinon, le comportement n’est pas défini.

  • 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

La définition de mesure de table Sales suivante utilise la fonction pour produire un calcul (LTD) à jour. La durée de vie à ce jour représente l’accumulation d’une mesure au fil du temps depuis le début de l’heure.

Notez que la formule utilise la fonction MAX. Cette fonction retourne la date la plus récente dans le contexte de filtre. Par conséquent, la fonction DATESBETWEEN retourne une table de dates commençant par la date la plus ancienne jusqu’à la date la plus récente signalée.

Les exemples de cet article peuvent être utilisés avec l’exemple de modèle Adventure Works DW 2020 Power BI Desktop. Pour obtenir le modèle, consultez DAX exemple de modèle.

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

Considérez que la date la plus ancienne stockée dans la table date est le 1er juillet 2017. Ainsi, lorsqu’un rapport filtre la mesure d’ici le mois de juin 2020, la fonction DATESBETWEEN retourne une plage de dates comprise entre le 1er juillet 2017 et le 30 juin 2020.

Exemple pour l’intelligence temporelle basée sur le calendrier

La définition de mesure de table Sales suivante utilise la fonction pour produire un calcul (LTD) à jour. La durée de vie à ce jour représente l’accumulation d’une mesure au fil du temps depuis le début de l’heure.

Notez que la formule utilise la fonction MAX. Cette fonction retourne la datekey maximale qui se trouve dans le contexte de filtre. Par conséquent, la fonction DATESBETWEEN retourne une table de dates commençant par la date la plus ancienne jusqu’à la date la plus récente signalée. DateKey est utilisé comme exemple pour montrer que la catégorie « Jour » peut être marquée avec une colonne qui n’est pas typée date

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