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 :
- Mettre en forme l’affichage d’une date dans une visualisation : Formats de date personnalisés
- Définir les propriétés de date par défaut : Propriétés de date pour une source de données
- Travailler avec des dates fiscales : Dates fiscales
- Utiliser le calendrier ISO-8601 : Calendrier ISO-8601 basé sur les semaines
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. 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.
Syntaxe | DATE(expression) |
Résultat | Date |
Définition | Renvoie 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 à
|
DATEADD
Ajoute un nombre spécifié de parties de date (mois, jours, etc.) à la date de début.
Syntaxe | DATEADD(date_part, interval, date) |
Résultat | Date |
Définition | Renvoie 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# |
Remarques | Prend en charge les dates ISO 8601. |
DATEDIFF
Renvoie le nombre de parties de date (semaines, années, etc.) entre deux dates.
Syntaxe | DATEDIFF(date_part, date1, date2, [start_of_week]) |
Résultat | Entier |
Définition | Renvoie 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]) |
Remarques | Prend 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.
Syntaxe | DATENAME(date_part, date, [start_of_week]) |
Résultat | Chaîne |
Définition | Renvoie <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 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 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.
Syntaxe | DATEPARSE(date_format, date_string) |
Résultat | Date |
Définition | L’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 |
Les fonctions inverses, qui séparent les dates et renvoient la valeur de leurs parties, sont |
Limitations de la base de données | La fonction
|
DATEPART
Renvoie le nom de la partie de date spécifiée sous la forme d’un entier.
Syntaxe | DATEPART(date_part, date, [start_of_week]) |
Résultat | Entier |
Définition | Renvoie <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, Une fonction inverse est |
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.
Syntaxe | DATETRUNC(date_part, date, [start_of_week]) |
Résultat | Date |
Définition | Tronque 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, |
Remarques | Prend en charge les dates ISO 8601. Vous ne devriez pas utiliser Par exemple, |
DAY
Renvoie le jour du mois (1-31) sous la forme d’un entier.
Syntaxe | DAY(date) |
Résultat | Entier |
Définition | Renvoie le jour d’une <date> donnée sous la forme d’un entier. |
Exemple | Day(#September 22, 2018#) = 22 |
Remarques | Voir également WEEK , MONTH , QUARTER , YEAR et les équivalents ISO. |
ISDATE
Vérifie si la chaîne est un format de date valide.
Syntaxe | ISDATE(string) |
Résultat | Booléen |
Définition | Renvoie la valeur true si une <string> donnée est une date valide. |
Exemple | ISDATE(09/22/2018) = true ISDATE(22SEP18) = false |
Remarques | L’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
Syntaxe | ISOQUARTER(date) |
Résultat | Entier |
Définition | Renvoie 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 |
Remarques | Voir également ISOWEEK , ISOWEEKDAY , ISOYEAR et les équivalents non-ISO. |
ISOWEEK
Syntaxe | ISOWEEK(date) |
Résultat | Entier |
Définition | Renvoie 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 |
Remarques | Voir également ISOWEEKDAY , ISOQUARTER , ISOYEAR et les équivalents non-ISO. |
ISOWEEKDAY
Syntaxe | ISOWEEKDAY(date) |
Résultat | Entier |
Définition | Renvoie 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 |
Remarques | Voir également ISOWEEK , ISOQUARTER , ISOYEAR et les équivalents non-ISO. |
ISOYEAR
Syntaxe | ISOYEAR(date) |
Résultat | Entier |
Définition | Renvoie 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 |
Remarques | Voir également ISOWEEK , ISOWEEKDAY , ISOQUARTER et les équivalents non-ISO. |
MAKEDATE
Syntaxe | MAKEDATE(year, month, day) |
Résultat | Date |
Définition | Renvoie 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 Disponible pour les extraits de données Tableau. Vérifiez la disponibilité dans d’autres sources de données.
|
MAKEDATETIME
Syntaxe | MAKEDATETIME(date, time) |
Résultat | Datetime |
Définition | Renvoie 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
Syntaxe | MAKETIME(hour, minute, second) |
Résultat | Datetime |
Définition | Renvoie 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 à |
MAX
Syntaxe | MAX(expression) ou MAX(expr1, expr2) |
Résultat | Mê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 maximum des deux arguments, qui doivent être du même type de données.
|
Exemple | MAX(4,7) = 7 |
Remarques | Pour les chaînes
Pour les sources de données de base de données, la valeur de la chaîne Pour les dates Pour les dates, En tant qu’agrégation
En tant que comparaison
Voir également |
MIN
Syntaxe | MIN(expression) ou MIN(expr1, expr2) |
Résultat | Mê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.
|
Exemple | MIN(4,7) = 4 |
Remarques | Pour les chaînes
Pour les sources de données de base de données, la valeur de la chaîne Pour les dates Pour les dates, En tant qu’agrégation
En tant que comparaison
Voir également |
MONTH
Syntaxe | MONTH(date) |
Résultat | Entier |
Définition | Renvoie le mois d’une <date> donnée sous la forme d’un entier. |
Exemple | MONTH(#1986-03-25#) = 3 |
Remarques | Voir également DAY , WEEK , QUARTER , YEAR et les équivalents ISO |
NOW
Syntaxe | NOW() |
Résultat | Datetime |
Définition | Renvoie la date et l’heure actuelles du système local. |
Exemple | NOW() = 1986-03-25 1:08:21 PM |
Remarques |
Voir aussi 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
Syntaxe | QUARTER(date) |
Résultat | Entier |
Définition | Renvoie le trimestre d’une <date> donnée sous la forme d’un entier. |
Exemple | QUARTER(#1986-03-25#) = 1 |
Remarques | Voir également DAY , WEEK , MONTH , YEAR et les équivalents ISO |
TODAY
Syntaxe | TODAY() |
Résultat | Date |
Définition | Renvoie la date du système local actuel. |
Exemple | TODAY() = 1986-03-25 |
Remarques |
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
Syntaxe | WEEK(date) |
Résultat | Entier |
Définition | Renvoie la semaine d’une <date> donnée sous la forme d’un entier. |
Exemple | WEEK(#1986-03-25#) = 13 |
Remarques | Voir également DAY , MONTH , QUARTER , YEAR et les équivalents ISO |
YEAR
Syntaxe | YEAR(date) |
Résultat | Entier |
Définition | Renvoie l’année d’une <date> donnée sous la forme d’un entier. |
Exemple | YEAR(#1986-03-25#) = 1,986 |
Remarques | Voir é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_part | Valeurs |
---|---|
'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 :
Format | Type de données | Valeur |
'March 25, 1986' | Chaîne | 'March 25, 1986' |
#3/25/1986# | Date | #3/25/1986# |
03/25/1986 | Décimal flottant | 0,00006042 |
1986-03-25 | Entier | 1958 |
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.
- Dans Tableau Desktop, connectez-vous à la source de données Sample - Superstore enregistrée qui est fournie avec Tableau.
- Ouvrez une feuille de calcul.
- Dans le volet Données, sous Dimensions, faites glisser Order Date (Date de commande) sur l’étagère Lignes.
- 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.
- 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).
- Sélectionnez Analyse > Créer un champ calculé.
- 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.
- 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.
- Sur l’étagère Lignes, faites un clic droit sur YEAR(Quarter Date) et sélectionnez Date exacte.
- 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.