Fonctions de date

Les dates sont un élément commun à de nombreuses sources de données. Si un champ contient des dates reconnaissables, il aura un type de données date ou date heure. Les champs de date qui sont utilisés dans la visualisation, reçoivent un ensemble spécial de fonctionnalités, y compris une hiérarchie de dates automatique, des options de filtre spécifiques à la date et des options de formatage de date spécialisées. L’utilisation de dates dans les calculs exige souvent de recourir à des fonctions spécifiques aux dates.

Se familiariser avec d’autres concepts de date

Les fonctions de date font parfois référence à des éléments spécifiques à la date, y compris l’argument date_part, le paramètre facultatif [start_of_week] et les expressions littérales de date (#). Ces fonctions sont traitées plus en détail à la fin de cette rubrique.

Il existe plusieurs autres sujets intéressants, mais qui ne font pas partie des fonctions de date :

Conseil : votre champ est déjà reconnu comme une date (il comporte une icône de date dans le volet Données) et vous essayez de contrôler la manière dont il apparaît dans la visualisation ? Vous devrez peut-être le formater plutôt que d’utiliser une fonction de date. Par exemple, vous souhaitez afficher le 22 septembre 2024 sous la forme 24/09. Cette fonction est gérée via le formatage de la date, et non par un calcul.

Voir Formats de date personnalisés ainsi que les rubriques connexes pour savoir comment utiliser des champs de date. Les fonctions de date de cette page vous permettent de manipuler les champs calculés de dates, mais pas de définir leur format d’affichage.

Fonctions de date disponibles dans Tableau

DATE

Fonction de conversion de type qui transforme les expressions de chaîne et de nombre en dates, tant qu’elles sont dans un format reconnaissable.

SyntaxeDATE(expression)
RésultatDate
DéfinitionRenvoie une date en fonction d’une <expression> de nombre, de chaîne ou de date.
Exemple
DATE([Employee Start Date])
DATE("September 22, 2018") 
DATE("9/22/2018")
DATE(#2018-09-22 14:52#)
Remarques

Contrairement à DATEPARSE, il n’est pas nécessaire de fournir un modèle car DATE reconnaît automatiquement de nombreux formats de date standard. Si toutefois DATE ne reconnaît pas l’entrée, essayez d’utiliser DATEPARSE et de spécifier le format.

MAKEDATE est une autre fonction similaire, mais MAKEDATE nécessite la saisie de valeurs numériques pour l’année, le mois et le jour.

DATEADD

Ajoute un nombre spécifié de parties de date (mois, jours, etc.) à la date de début.

SyntaxeDATEADD(date_part, interval, date)
RésultatDate
DéfinitionRenvoie la <date> spécifiée avec l’<interval> numérique spécifié ajouté à l’élément <date_part> spécifié de cette date. par exemple en ajoutant trois mois ou 12 jours à une date de début.
Exemple

Repousser toutes les dates d’échéance d’une semaine

DATEADD('week', 1, [due date])

Ajouter 280 jours à la date du 20 février 2021

DATEADD('day', 280, #2/20/21#) = #November 27, 2021#
RemarquesPrend en charge les dates ISO 8601.

DATEDIFF

Renvoie le nombre de parties de date (semaines, années, etc.) entre deux dates.

SyntaxeDATEDIFF(date_part, date1, date2, [start_of_week])
RésultatEntier
DéfinitionRenvoie la différence entre <date1> et <date2> exprimée en unités de <date_part>. Par exemple, soustrayez les dates entre la date d’entrée et de sortie d’une personne dans un groupe pour voir combien de temps elle est restée dans le groupe.
Exemple

Nombre de jours entre le 25 mars 1986 et le 20 février 2021

DATEDIFF('day', #3/25/1986#, #2/20/2021#) = 12,751

Combien de mois une personne est restée dans un groupe

DATEDIFF('month', [date joined band], [date left band])
RemarquesPrend en charge les dates ISO 8601.

DATENAME

Renvoie le nom de la partie de date spécifiée sous forme de chaîne discrète.

SyntaxeDATENAME(date_part, date, [start_of_week])
RésultatChaîne
DéfinitionRenvoie <date_part> de <date> sous la forme d’une chaîne.
Exemple
DATENAME('year', #3/25/1986#) = "1986"
DATENAME('month', #1986-03-25#) = "March"
Remarques

Prend en charge les dates ISO 8601.

Un calcul très similaire est DATEPART, qui renvoie la valeur de la partie de date spécifiée sous la forme d’un entier continu. La fonction DATEPART peut être plus rapide car il s’agit d’une opération numérique.

En modifiant les attributs du résultat du calcul (dimension ou mesure, continu ou discret) et le formatage de la date, les résultats de DATEPART et DATENAME peuvent être formatés pour être identiques.

Une fonction inverse est DATEPARSE, qui prend une valeur de chaîne et la formate en tant que date.

DATEPARSE

Renvoie des chaînes spécifiquement formatées en tant que dates.

SyntaxeDATEPARSE(date_format, date_string)
RésultatDate
DéfinitionL’argument <date_format> décrit comment le champ <date_string> est disposé. Étant donné que le champ de type chaîne peut être disposé de multiples manières, <date_format> doit correspondre exactement. Pour une explication complète et des détails de mise en forme, consultez Convertir un champ en un champ de date(Le lien s’ouvre dans une nouvelle fenêtre).
Exemple
DATEPARSE('yyyy-MM-dd', "1986-03-25") = #March 25, 1986#
Remarques

DATE est une fonction similaire qui reconnaît automatiquement de nombreux formats de date standard. DATEPARSE peut être une meilleure option si DATE ne reconnaît pas le modèle d’entrée.

MAKEDATE est une autre fonction similaire, mais MAKEDATE nécessite la saisie de valeurs numériques pour l’année, le mois et le jour.

Les fonctions inverses, qui séparent les dates et renvoient la valeur de leurs parties, sont DATEPART (sortie entier) et DATENAME (sortie chaîne).

Limitations de la base de données

La fonction DATEPARSE est disponible dans les connecteurs suivants : connexions aux fichiers Excel et texte non hérités, Amazon EMR Hadoop Hive, Cloudera Hadoop, Google Sheets, Hortonworks Hadoop Hive, MapR Hadoop Hive, MySQL, Oracle, PostgreSQL et extraits Tableau. Certains formats peuvent ne pas être disponibles pour toutes les connexions.

DATEPARSE n’est pas pris en charge sur les variantes Hive. Seuls Denodo, Drill et Snowflake sont pris en charge.

DATEPART

Renvoie le nom de la partie de date spécifiée sous la forme d’un entier.

SyntaxeDATEPART(date_part, date, [start_of_week])
RésultatEntier
DéfinitionRenvoie <date_part> de <date> sous la forme d’un nombre entier.
Exemple
DATEPART('year', #1986-03-25#) = 1986
DATEPART('month', #1986-03-25#) = 3
Remarques

Prend en charge les dates ISO 8601.

Un calcul très similaire, DATENAME, renvoie le nom de la partie de date spécifiée sous la forme d’une chaîne discrète. La fonction DATEPART peut être plus rapide car il s’agit d’une opération numérique. En modifiant les attributs du champ (dimension ou mesure, continu ou discret) et le formatage de la date, les résultats de DATEPART et DATENAME peuvent être formatés pour être identiques.

Une fonction inverse est DATEPARSE, qui prend une valeur de chaîne et la formate en tant que date.

DATETRUNC

Cette fonction peut être considérée comme un arrondi de date. Il prend une date spécifique et renvoie une version de cette date avec la spécificité souhaitée. Étant donné que chaque date doit avoir une valeur pour le jour, le mois, le trimestre et l’année, DATETRUNC définit les valeurs comme la valeur la plus basse pour chaque partie de date jusqu’à la partie de date spécifiée. Pour plus d’informations, référez-vous à l’exemple.

SyntaxeDATETRUNC(date_part, date, [start_of_week])
RésultatDate
DéfinitionTronque la <date> selon le degré de précision indiqué par la valeur <date_part>. Cette fonction renvoie une nouvelle date. Par exemple, lorsque vous tronquez une date qui se situe au milieu du mois au niveau mois, cette fonction renvoie le premier jour du mois.
Exemple
DATETRUNC('day', #9/22/2018#) = #9/22/2018#
DATETRUNC('iso-week', #9/22/2018#) = #9/17/2018#

(le lundi de la semaine contenant le 9/22/2018)

DATETRUNC(quarter, #9/22/2018#) = #7/1/2018# 

(le premier jour du trimestre contenant le 9/22/2018)

Remarque : pour la semaine et l’iso-semaine, start_of_week entre en jeu. Les semaines ISO commencent toujours le lundi. Pour les paramètres régionaux de cet exemple, un paramètre non spécifié start_of_week signifie que la semaine commence le dimanche.

Remarques

Prend en charge les dates ISO 8601.

Il est déconseillé d’utiliser DATETRUNC par exemple pour cesser d’afficher l’heure d’un champ date/heure dans une visualisation. Si vous souhaitez tronquer l’affichage d’une date plutôt que d’arrondir sa précision, ajustez la mise en forme(Le lien s’ouvre dans une nouvelle fenêtre).

Par exemple, DATETRUNC('day', #5/17/2022 3:12:48 PM#), s’il est formaté dans la visualisation pour afficher les secondes, s’affichera sous la forme 5/17/2022 12:00:00 AM. La valeur est tronquée au jour, mais l’affichage passe aux secondes.

DAY

Renvoie le jour du mois (1-31) sous la forme d’un entier.

SyntaxeDAY(date)
RésultatEntier
DéfinitionRenvoie le jour d’une <date> donnée sous la forme d’un entier.
Exemple
Day(#September 22, 2018#) = 22
RemarquesVoir également WEEK, MONTH, QUARTER, YEAR et les équivalents ISO.

ISDATE

Vérifie si la chaîne est un format de date valide.

SyntaxeISDATE(string)
RésultatBooléen
DéfinitionRenvoie la valeur true si une <string> donnée est une date valide.
Exemple
ISDATE(09/22/2018) = true
ISDATE(22SEP18) = false
RemarquesL’argument requis doit être une chaîne. ISDATE ne peut pas être utilisé pour un champ avec un type de données de date. Le calcul renverra une erreur.

ISOQUARTER

SyntaxeISOQUARTER(date)
RésultatEntier
DéfinitionRenvoie le trimestre basé sur les semaines ISO8601 d’une <date> donnée sous la forme d’un nombre entier.
Exemple
ISOQUARTER(#1986-03-25#) = 1
RemarquesVoir également ISOWEEK, ISOWEEKDAY, ISOYEAR et les équivalents non-ISO.

ISOWEEK

SyntaxeISOWEEK(date)
RésultatEntier
DéfinitionRenvoie la semaine basée sur les semaines ISO8601 d’une <date> donnée sous la forme d’un nombre entier.
Exemple
ISOWEEK(#1986-03-25#) = 13
RemarquesVoir également ISOWEEKDAY, ISOQUARTER, ISOYEAR et les équivalents non-ISO.

ISOWEEKDAY

SyntaxeISOWEEKDAY(date)
RésultatEntier
DéfinitionRenvoie le jour de la semaine basé sur les semaines ISO8601 d’une <date> donnée sous la forme d’un nombre entier.
Exemple
ISOWEEKDAY(#1986-03-25#) = 2
RemarquesVoir également ISOWEEK, ISOQUARTER, ISOYEAR et les équivalents non-ISO.

ISOYEAR

SyntaxeISOYEAR(date)
RésultatEntier
DéfinitionRenvoie l’année basée sur les semaines ISO8601 d’une <date> donnée sous la forme d’un nombre entier.
Exemple
ISOYEAR(#1986-03-25#) = 1,986
RemarquesVoir également ISOWEEK, ISOWEEKDAY, ISOQUARTER et les équivalents non-ISO.

MAKEDATE

SyntaxeMAKEDATE(year, month, day)
RésultatDate
DéfinitionRenvoie une valeur de date créée à partir des valeurs <year>, <month> et <day> spécifiées.
Exemple
MAKEDATE(1986,3,25) = #1986-03-25#
Remarques

Remarque : les valeurs saisies incorrectement seront ajustées dans une date, par exemple MAKEDATE(2020,4,31) = May 1, 2020 plutôt que de renvoyer une erreur indiquant qu’il n’y a pas de 31e jour d’avril.

Disponible pour les extraits de données Tableau. Vérifiez la disponibilité dans d’autres sources de données.

MAKEDATE requiert des entrées numériques pour les parties d’une date. Si vos données sont une chaîne qui devrait être une date, essayez la fonction DATE. DATE reconnaît automatiquement de nombreux formats de date standard. Si DATE ne reconnaît pas l’entrée, essayez d’utiliser DATEPARSE.

MAKEDATETIME

SyntaxeMAKEDATETIME(date, time)
RésultatDatetime
DéfinitionRenvoie des données de date/heure composées d’une <date> et d’une <time>. La date peut être une information de type date, date/heure ou chaîne. L’heure doit être une information de type date/heure.
Exemple
MAKEDATETIME("1899-12-30", #07:59:00#) = #12/30/1899 7:59:00 AM#
MAKEDATETIME([Date], [Time]) = #1/1/2001 6:00:00 AM#
Remarques

Cette fonction est disponible uniquement pour les connexions compatibles MySQL (pour Tableau,ce sont MySQL et Amazon Aurora).

MAKETIME est une fonction similaire disponible pour les extraits de données Tableau et certaines autres sources de données.

MAKETIME

SyntaxeMAKETIME(hour, minute, second)
RésultatDatetime
DéfinitionRenvoie une valeur de date créée à partir des valeurs <hour>, <minute> et <second> spécifiées.
Exemple
MAKETIME(14, 52, 40) = #1/1/1899 14:52:40#
Remarques

Étant donné que Tableau ne prend pas en charge un type de données d’heure, mais uniquement une date et heure, la sortie est une date et heure. La partie date du champ sera 1/1/1899.

Fonction similaire à MAKEDATETIME, qui n’est disponible que pour les connexions compatibles MYSQL.

MAX

SyntaxeMAX(expression) ou MAX(expr1, expr2)
RésultatMême type de données que l’argument, ou NULLsi une partie de l’argument est une valeur null.
Définition

Renvoie la valeur maximum des deux arguments, qui doivent être du même type de données.

MAX peut également être appliqué à un seul champ en tant qu’agrégation.

Exemple
MAX(4,7) = 7
MAX(#3/25/1986#, #2/20/2021#) = #2/20/2021#
MAX([Name]) = "Zander"
Remarques

Pour les chaînes

MAX est généralement la valeur qui vient en dernier dans l’ordre alphabétique.

Pour les sources de données de base de données, la valeur de la chaîne MAX est la valeur la plus élevée dans la séquence de tri définie par la base de données pour cette colonne.

Pour les dates

Pour les dates, MAX est la date la plus récente. Si MAX est une agrégation, le résultat n’aura pas de hiérarchie de dates. Si MAX est une comparaison, le résultat conservera la hiérarchie de dates.

En tant qu’agrégation

MAX(expression) est une fonction d’agrégation et renvoie un seul résultat agrégé. Elle s’affiche sous la forme AGG(expression) dans la visualisation.

En tant que comparaison

MAX(expr1, expr2) compare les deux valeurs et renvoie une valeur au niveau des lignes.

Voir également MIN.

MIN

SyntaxeMIN(expression) ou MIN(expr1, expr2)
RésultatMême type de données que l’argument, ou NULL si une partie de l’argument est une valeur null.
Définition

Renvoie la valeur minimum des deux arguments, qui doivent être du même type de données.

MIN peut également être appliqué à un seul champ en tant qu’agrégation.

Exemple
MIN(4,7) = 4
MIN(#3/25/1986#, #2/20/2021#) = #3/25/1986#
MIN([Name]) = "Abebi"
Remarques

Pour les chaînes

MIN est généralement la valeur qui vient en premier dans l’ordre alphabétique.

Pour les sources de données de base de données, la valeur de la chaîne MIN est la valeur la plus faible dans la séquence de tri définie par la base de données pour cette colonne.

Pour les dates

Pour les dates, MIN est la date la plus récente. Si MIN est une agrégation, le résultat n’aura pas de hiérarchie de dates. Si MIN est une comparaison, le résultat conservera la hiérarchie de dates.

En tant qu’agrégation

MIN(expression) est une fonction d’agrégation et renvoie un seul résultat agrégé. Elle s’affiche sous la forme AGG(expression) dans la visualisation.

En tant que comparaison

MIN(expr1, expr2) compare les deux valeurs et renvoie une valeur au niveau des lignes.

Voir également MAX.

MONTH

SyntaxeMONTH(date)
RésultatEntier
DéfinitionRenvoie le mois d’une <date> donnée sous la forme d’un entier.
Exemple
MONTH(#1986-03-25#) = 3
RemarquesVoir également DAY, WEEK, QUARTER, YEAR et les équivalents ISO

NOW

SyntaxeNOW()
RésultatDatetime
DéfinitionRenvoie la date et l’heure actuelles du système local.
Exemple
NOW() = 1986-03-25 1:08:21 PM
Remarques

NOW ne prend pas d’argument.

Voir aussi TODAY, un calcul similaire qui renvoie une date au lieu d’une date/heure.

Si la source de données est une connexion en direct, la date et l’heure du système peuvent être dans un autre fuseau horaire. Pour plus d’informations sur la résolution de ce problème, consultez la Base de connaissances.

QUARTER

SyntaxeQUARTER(date)
RésultatEntier
DéfinitionRenvoie le trimestre d’une <date> donnée sous la forme d’un entier.
Exemple
QUARTER(#1986-03-25#) = 1
RemarquesVoir également DAY, WEEK, MONTH, YEAR et les équivalents ISO

TODAY

SyntaxeTODAY()
RésultatDate
DéfinitionRenvoie la date du système local actuel.
Exemple
TODAY() = 1986-03-25
Remarques

TODAY ne prend pas d’argument.

Voir aussi NOW, un calcul similaire qui renvoie une date/heure au lieu d’une date.

Si la source de données est une connexion en direct, la date du système peut être dans un autre fuseau horaire. Pour plus d’informations sur la résolution de ce problème, consultez la Base de connaissances.

WEEK

SyntaxeWEEK(date)
RésultatEntier
DéfinitionRenvoie la semaine d’une <date> donnée sous la forme d’un entier.
Exemple
WEEK(#1986-03-25#) = 13
RemarquesVoir également DAY, MONTH, QUARTER, YEAR et les équivalents ISO

YEAR

SyntaxeYEAR(date)
RésultatEntier
DéfinitionRenvoie l’année d’une <date> donnée sous la forme d’un entier.
Exemple
YEAR(#1986-03-25#) = 1,986
RemarquesVoir également DAY, WEEK, MONTH, QUARTER et les équivalents ISO

date_part

De nombreuses fonctions de date dans Tableau prennent l’argument date_part, qui est une constante de chaîne indiquant à la fonction la partie d’une date à prendre en compte, comme le jour, la semaine, le trimestre, etc. Les valeurs de date_part valides que vous pouvez utiliser sont :

date_partValeurs
'year'Année exprimée à l’aide de quatre chiffres
'quarter'1-4
'month'1-12 ou « Janvier », « Février », etc.
'dayofyear'Jour de l’année ; 1 correspond au 1er janvier, 32 correspond au 1er février, etc.
'day'1-31
'weekday'1-7 ou « Dimanche », « Lundi », etc.
'week'1-52
'hour'0-23
'minute'0-59
'second'0-60
'iso-year'Année ISO 8601 à quatre chiffres
'iso-quarter'1-4
'iso-week'1-52, le début de la semaine est toujours un lundi
'iso-weekday'1-7, le début de la semaine est toujours un lundi

Paramètre [start_of_week]

Certaines fonctions utilisent le paramètre facultatif[start_of_week]. Le paramètre start_of_week peut être utilisé pour spécifier le jour qui est considéré comme le premier jour de la semaine, tel que « Dimanche » ou « Lundi ». S’il est omis, le début de la semaine est déterminé par la source de données. Consultez la section Propriétés de date pour une source de données.

Pour les exemples ci-dessous, le 22 septembre est un dimanche et le 24 septembre est un mardi. La fonction DATEDIFF est utilisée pour calculer les semaines entre ces dates.

DATEDIFF('week', #2013-09-22#, #2013-09-24#, 'monday') = 1

  • Étant donné que start_of_week est ici « monday », ces dates correspondent à des semaines différentes.

DATEDIFF('week', #2013-09-22#, #2013-09-24#, 'sunday') = 0

  • Etant donné que start_of_week est ici « sunday », ces dates sont dans la même semaine.

Expression littérale de date (#)

Les exemples utilisent souvent le symbole dièse (#) avec des expressions de date. Il s’agit de l’expression littérale de date, similaire à l’utilisation de guillemets pour les chaînes de texte. Elle indique à Tableau que la valeur à l’intérieur des symboles est une date.

Sans les expressions littérales de date, les dates peuvent être interprétées comme divers autres types de données. Par exemple :

FormatType de donnéesValeur
'March 25, 1986'Chaîne'March 25, 1986'
#3/25/1986#Date#3/25/1986#
03/25/1986Décimal flottant0,00006042
1986-03-25Entier1958
March 25, 1986 non valide

Pour plus d’informations, consultez Syntaxe des expressions littérales.

Créer un calcul de date

Entraînez-vous à créer un calcul de date à l’aide de l’exemple de source de données Superstore.

  1. Dans Tableau Desktop, connectez-vous à la source de données Sample - Superstore enregistrée qui est fournie avec Tableau.
  2. Ouvrez une feuille de calcul.
  3. Dans le volet Données, sous Dimensions, faites glisser Order Date (Date de commande) sur l’étagère Lignes.
  4. Sur l’étagère Lignes, cliquez sur l’icône plus (+) dans le champ YEAR(Order Date).

    QUARTER(Order Date) est ajouté à l’étagère Lignes et la vue se met à jour.

  5. Dans l’étagère Lignes, cliquez sur l’icône plus (+) dans le champ QUARTER(Order Date) pour explorer en cascade jusqu’à MONTH(Order Date).

  6. Sélectionnez Analyse > Créer un champ calculé.
  7. Dans l’éditeur de calcul qui s’ouvre, procédez comme suit :
    • Nommez le champ calculé Date du trimestre.
    • Entrez la formule suivante : DATETRUNC('quarter', [Order Date])
    • Lorsque vous avez terminé, cliquez sur OK.

      Le nouveau champ calculé de date apparaît sous Dimensions dans le volet Données. Comme vos autres champs, vous pouvez l’utiliser dans une ou plusieurs visualisations.

  8. Dans le volet Données sous Dimensions, faites glisser Date du trimestre vers l’étagère Lignes et placez-le à droite de MONTH(Order Date). La visualisation se met à jour avec les valeurs d’année. Ceci se produit parce que Tableau récapitule les données jusqu’au plus haut niveau de détail.
  9. Sur l’étagère Lignes, faites un clic droit sur YEAR(Quarter Date) et sélectionnez Date exacte.
  10. Sur l’étagère Lignes, faites à nouveau un clic droit sur YEAR(Quarter Date) et sélectionnez Discret.

    La visualisation se met à jour avec la date exacte du trimestre pour chaque ligne de la table.

Merci de vos commentaires !Avis correctement envoyé. Merci