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.

Les fonctions de date vous permettent de manipuler les dates dans votre source de données.

Fonctions 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 :

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'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 un modèle car DATE reconnaît automatiquement de nombreux formats de date standard. Si 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'intervalle de nombre spécifié ajouté à la date_part spécifiée 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 la 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 comme une 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 [chaîne] 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, consultez Convertir un champ en un champ de date.
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 la date_part de date sous la forme d'un 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. 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 comme une 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 indiquée 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('week', #9/22/2018#) = #9/16/2018# 

(le dimanche de la semaine contenant le 9/22201/8)

DATETRUNC('iso-week', #9/22/2018#) = #9/17/2018#      

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

DATETRUNC(month, #9/22/2018#) = #9/1/2018#      

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

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

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

DATETRUNC('year', #9/22/2018#) = #1/1/2018#      

(le premier jour de l'année 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.

Vous n'allez pas utiliser DATETRUNC pour, par exemple, arrêter d'afficher l'heure d'un champ datetime 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.

Par exemple, DATETRUNC('day', #5/17/2022 3:12:48 PM#), s'il est affiché dans la visualisation à la seconde près, s'affichera sous la forme 5/17/2022 12:00:00 AM.

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 vrai si une chaîne 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.

MAKEDATE

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

Notez que 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.

Remarques

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

MAKEDATE nécessite 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 date/heure composées d'une date et d'une heure. 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 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'heure, des minutes et des secondes 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, uniquement une date et une heure, la sortie est une date et une 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ésultatDate (voir les remarques)
DéfinitionMAX s'applique généralement aux nombres, mais fonctionne également sur les dates. Renvoie le maximum (le plus récent) d'un champ de date ou de deux dates.
Exemple
MAX(#Sept 22, 2018#, #Feb 20, 2021#) = #Feb 20, 2021#
MAX([Ship date])
Remarques

MAX(expression) est traité comme une fonction d'agrégation et renvoie un seul résultat agrégé. L’expression s'affiche sous la forme AGG([calculation name]) dans la visualisation et n'aura pas de hiérarchie de dates.

MAX(expr1, expr2) compare les deux valeurs et renvoie une valeur au niveau de la ligne. Pour les dates, cette valeur sera une date et les résultats conserveront la hiérarchie des dates.

Renvoie une valeur null si un argument est une valeur null.

MIN

SyntaxeMIN(expression) ou MIN(expr1, expr2)
RésultatDate (voir les remarques)
DéfinitionMIN s'applique généralement aux nombres, mais fonctionne également sur les dates. Renvoie le minimum (le plus ancien) d'un champ de date ou de deux dates.
Exemple
MIN(#Sept 22, 2018#, #Feb 20, 2021#) = #Sept 22, 2018#
MIN(Ship date])
Remarques

MIN(expression) est traité comme une fonction d'agrégation et renvoie un seul résultat agrégé. L’expression s'affiche sous la forme AGG([calculation name]) dans la visualisation et n'aura pas de hiérarchie de dates.

MIN(expr1, expr2) compare les deux valeurs et renvoie une valeur au niveau de la ligne. Pour les dates, cette valeur sera une date et les résultats conserveront la hiérarchie des dates.

Renvoie une valeur null si un argument est une valeur null.

MONTH

SyntaxeMONTH(date)
RésultatEntier
DéfinitionRenvoie le mois d'une date donnée sous la forme d'un nombre 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 ne prend pas un 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 nombre 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 du système local actuel.
Exemple
TODAY() = 1986-03-25
Remarques

TODAY ne prend pas un 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 nombre 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 nombre entier.
Exemple
YEAR(#1986-03-25#) = 1,986
RemarquesVoir aussi DAY, WEEK, MONTH, QUARTER et les équivalents ISO.

ISOQUARTER

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

ISOWEEKDAY

SyntaxeISOWEEKDAY(date)
RésultatEntier
DéfinitionRenvoie le jour ISO8601 basé sur les semaines d'une date donnée sous la forme d'un nombre entier.
Exemple
ISOWEEKDAY(#1986-03-25#) = 2
RemarquesVoir aussi ISOWEEK, ISOQUARTER, ISOYEAR et les é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 nombre entier.
Exemple
ISOYEAR(#1986-03-25#) = 1,986
RemarquesVoir aussi ISOWEEK, ISOWEEKDAY, ISOQUARTER et les équivalents non ISO.

Argument 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 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 "lundi, "mardi, 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 !