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 :
- Mettre en forme le mode d’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
- Utiliser des dates fiscales : Dates fiscales
- Utiliser le calendrier ISO-8601 : Calendrier ISO-8601 basé sur les semaines
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.
Syntaxe | DATE(expression) |
Résultat | Date |
Définition | Renvoie 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 à
|
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 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# |
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, 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]) |
Remarques | Prend 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.
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. 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 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.
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 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 |
Les fonctions inverses, qui séparent les dates et renvoient la valeur de leurs parties, sont |
Limites de la base de données |
|
DATEPART
Renvoie le nom d’une date donnée sous la forme d’un nombre 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 est
|
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.
Syntaxe | DATETRUNC(date_part, date, [start_of_week]) |
Résultat | Date |
Définition | Tronque 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 |
Remarques | Prend en charge les dates ISO 8601. Vous ne devez pas utiliser Par exemple, si |
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 aussi 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 doit pas être utilisé pour un champ dont le type de données est une date : le calcul renverra une erreur. |
ISOQUARTER
Syntaxe | ISOQUARTER(date) |
Résultat | Entier |
Définition | Renvoie le trimestre ISO8601 basé sur les semaines d’une <date> donnée sous la forme d’un entier. |
Exemple | ISOQUARTER(#1986-03-25#) = 1 |
Remarques | Consultez aussi ISOWEEK , ISOWEEKDAY , ISOYEAR et leurs équivalents non ISO. |
ISOWEEK
Syntaxe | ISOWEEK(date) |
Résultat | Entier |
Définition | Renvoie 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 |
Remarques | Consultez aussi ISOWEEKDAY , ISOQUARTER , ISOYEAR et leurs équivalents non ISO. |
ISOWEEKDAY
Syntaxe | ISOWEEKDAY(date) |
Résultat | Entier |
Définition | Renvoie 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 |
Remarques | Consultez aussi ISOWEEK , ISOQUARTER , ISOYEAR et leurs équivalents non ISO. |
ISOYEAR
Syntaxe | ISOYEAR(date) |
Résultat | Entier |
Définition | Renvoie 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 |
Remarques | Consultez aussi ISOWEEK , ISOWEEKDAY , ISOQUARTER et leurs équivalents non ISO. |
MAKEDATE
Syntaxe | MAKEDATE(year, month, day) |
Résultat | Date |
Définition | Renvoie 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 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 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
Syntaxe | MAKETIME(hour, minute, second) |
Résultat | Datetime |
Définition | Renvoie 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 à |
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 nulle. |
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 La valeur Pour les sources de données de la base de données, la valeur de chaîne Pour les dates Pour les dates, la valeur Comme agrégation
Comme comparaison
Voir aussi |
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 nulle. |
Définition | Renvoie la valeur minimale des deux arguments, qui doivent être du même type de données.
|
Exemple | MIN(4,7) = 4 |
Remarques | Pour les chaînes La valeur Pour les sources de données de la base de données, la valeur de chaîne Pour les dates Pour les dates, la valeur Comme agrégation
Comme comparaison
Voir aussi |
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 aussi 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 |
Consultez aussi 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
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 aussi DAY , WEEK , MONTH , YEAR et les équivalents ISO |
TODAY
Syntaxe | TODAY() |
Résultat | Date |
Définition | Renvoie la date actuelle du système local. |
Exemple | TODAY() = 1986-03-25 |
Remarques |
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
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 aussi 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 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_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 |
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 :
Format | Type de données | Valeur |
’25 mars 1986’ | Chaîne | ’25 mars 1986’ |
#25/03/1986# | Date | #25/03/1986# |
25 mars 1986 | Virgule flottante | 0,00006042 |
25 mars 1986 | Entier | 1 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é.
- 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 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.
- 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.