Fonctions de date

Les dates sont monnaie courante dans de nombreuses sources de données. Si un champ contient des dates reconnaissables, il aura un type de données date ou date-heure. Lorsque des champs de date sont utilisés dans la visualisation, ils bénéficient d’un ensemble de fonctionnalités particulières, notamment des options de descente automatique dans la hiérarchie de dates, des options de filtre spécifiques aux dates et des options spécialisées de format de date. L’utilisation de dates dans les calculs nécessite souvent l’utilisation de 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 aux dates, notamment l’argument date_part le paramètre [start_of_week] et les expressions littérales de date (#). Ces fonctions sont décrites de manière détaillée à la fin de cette rubrique.

Voici d’autres rubriques qui pourraient se révéler intéressantes mais ne font pas partie des fonctions de date :

Conseil : Votre champ est-il 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 façon 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 que 22 septembre 2024 s’affiche comme 09/24. Cette opération se fait par une mise en forme de la date, et non par un calcul.

Consultez Formats de date personnalisés et des rubriques connexes pour travailler avec des champs de date. Les fonctions de date de cette page vous permettent de manipuler les champs calculés de dates, sans définir leur format d’affichage.

Fonctions de date disponibles dans Tableau

DATE

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

SyntaxeDATE(expression)
RésultatDate
DéfinitionRenvoie une date en fonction d’un nombre, d’une chaîne ou d’une <expression>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 une tendance 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 préciser 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 le numéro spécifié <interval> ajouté à l’élément <date_part> spécifié de cette date. Par exemple, le fait d’ajouter trois mois ou 12 jours à une date de début.
Exemple

Reporter 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, le fait de soustraire les dates auxquelles une personne a intégré ou quitté un groupe pour déterminer le temps passé au sein du 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

Nombre de mois qu’une personne a passé 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 la forme d’une 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. 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 la mise en forme de la date, les résultats de DATEPART et DATENAME peuvent être mis en forme pour être identiques.

DATEPARSE est une fonction inverse qui prend une valeur de chaîne et la met sous la forme d’une date.

DATEPARSE

Renvoie des chaînes de caractères spécifiquement mises en forme sous la forme de 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 explications détaillées sur la 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 est une option idéale 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 de l’entier) et DATENAME (sortie de chaîne de caractères).

Limites de la base de données

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 d’une date donnée sous la forme d’un nombre 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 est DATENAME, qui renvoie le nom de la partie de date spécifiée sous la forme d’une chaîne discrète. 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 la mise en forme de la date, les résultats de DATEPART et DATENAME peuvent être mis en forme pour être identiques.

DATEPARSE est une fonction inverse qui prend une valeur de chaîne et la met sous la forme d’une date.

DATETRUNC

Cette fonction peut être considérée comme un arrondi de date. Elle prend une date spécifique et renvoie une version de cette date avec la précision 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 la valeur la plus faible pour chaque partie de date jusqu’à la partie de date spécifiée. Consultez l’exemple pour plus d’information.

SyntaxeDATETRUNC(date_part, date, [start_of_week])
RésultatDate
DéfinitionTronque la <date> au niveau 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 sur lequel tombe le 22/09/2018)

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

(le premier jour du trimestre sur lequel tombe le 22/09/2018)

Remarque : pour la semaine et la valeur iso-week, le start_of_week est pris en considération. La valeur ISO-8601 commence toujours le lundi. Pour les paramètres régionaux de cet exemple, une valeur start_of_week non spécifiée indique que le début de la semaine est un dimanche.

Remarques

Prend en charge les dates ISO 8601.

Vous ne devez pas utiliser DATETRUNC pour, par exemple, cesser d’afficher l’heure d’un champ de date 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, si DATETRUNC('day', #5/17/2022 3:12:48 PM#) est mis en forme dans la visualisation pour s’afficher avec des secondes, il sera affiché comme étant 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 aussi 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 doit pas être utilisé pour un champ dont le type de données est une date : le calcul renverra une erreur.

ISOQUARTER

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

ISOWEEK

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

ISOWEEKDAY

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

ISOYEAR

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

MAKEDATE

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

Remarque : Les valeurs erronées seront corrigées dans une date, par exemple MAKEDATE(2020,4,31) = May 1, 2020 au lieu de renvoyer une erreur qui indique que le mois d’avril n’a pas 31 jours.

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

MAKEDATE a besoin d’entrées numériques pour les parties d’une date. Si vos données sont une chaîne qui doit ê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 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, 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 de l’<hour>, du <minute> et du <second> spécifiés.
Exemple
MAKETIME(14, 52, 40) = #1/1/1899 14:52:40#
Remarques

Comme Tableau ne prend pas en charge le type de données heure, mais seulement le type date-heure, la sortie est une valeur datetime. La partie date du champ sera 1/1/1899.

Fonction similaire à MAKEDATETIME, disponible uniquement pour les connexions compatibles avec MYSQL.

MAX

SyntaxeMAX(expression) ou MAX(expr1, expr2)
RésultatMême type de données que l’argument, ou NULL si une partie de l’argument est une valeur nulle.
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 dans une 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

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

Pour les sources de données de la base de données, la valeur de chaîne MAX est 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, la valeur 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.

Comme agrégation

MAX(expression) est une fonction d’agrégation et renvoie un seul résultat agrégé. Cette fonction s’affiche en tant que AGG(expression) dans la visualisation.

Comme comparaison

MAX(expr1, expr2) compare les deux valeurs et renvoie une valeur de niveau ligne.

Voir aussi 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 nulle.
Définition

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

MIN peut également être appliqué à un seul champ dans une 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

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

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

Pour les dates

Pour les dates, la valeur MIN est la date la plus proche. 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.

Comme agrégation

MIN(expression) est une fonction d’agrégation et renvoie un seul résultat agrégé. Cette fonction s’affiche en tant que AGG(expression) dans la visualisation.

Comme comparaison

MIN(expr1, expr2) compare les deux valeurs et renvoie une valeur de niveau ligne.

Voir aussi 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 aussi 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 n’utilise pas un argument.

Consultez aussi TODAY, un calcul similaire qui renvoie une date plutôt qu’un élément datetime.

Si la source de données est une connexion en direct, la date et l’heure du système peuvent indiquer un autre fuseau horaire. Pour plus d’information 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 aussi DAY, WEEK, MONTH, YEAR et les équivalents ISO

TODAY

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

TODAY n’utilise pas un argument.

Consultez aussi NOW, un calcul similaire qui renvoie une valeur datetime plutôt qu’une date.

Si la source de données est une connexion en direct, la date du système peut indiquer un autre fuseau horaire. Pour plus d’information 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 aussi 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 aussi DAY, WEEK, MONTH, QUARTER et les équivalents ISO

date_part

Plusieurs fonctions de date dans Tableau utilisent l’argument date_part, une chaîne constante qui demande à la fonction la partie d’une date à considérer, par exemple le jour, la semaine, le trimestre, etc. Les valeurs date_part valides que vous pouvez utiliser sont les suivantes :

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

Le paramètre [start_of_week]

Certaines fonctions possèdent le paramètre facultatif [start_of_week]. Vous pouvez utiliser le paramètre start_of_week pour spécifier le jour à considérer comme le premier jour de la semaine, par exemple « dimanche » ou « lundi ». S’il est omis, le début de la semaine est déterminé par la source de données. Consultez Propriétés de date pour une source de données.

Pour les exemples ci-dessous, le 22 septembre tombe un dimanche et le 24 septembre tombe 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

  • Car lorsque start_of_week prend la valeur ’monday’, ces dates ne sont pas de la même semaine.

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

  • Car lorsque start_of_week prend la valeur ’sunday’, ces dates sont de la même semaine.

L’expression littérale de date (#)

Les exemples utilisent souvent le symbole de la livre (#) avec les expressions de date. Il s’agit d’une expression littérale de date, qui revient à utiliser des guillemets pour les chaînes de texte, et elle demande à Tableau si la valeur dans les symboles est une date.

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

FormatType de donnéesValeur
’25 mars 1986’Chaîne’25 mars 1986’
#25/03/1986#Date#25/03/1986#
25 mars 1986Virgule flottante0,00006042
25 mars 1986Entier1 958
25 mars 1986 non valide

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

Créer un calcul de date

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

  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 quarter Date 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!Votre commentaire s été envoyé avec succès. Merci!