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 :
- 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
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'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.
Syntaxe | DATEADD(date_part, interval, date) |
Résultat | Date |
Définition | Renvoie 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# |
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 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.
Syntaxe | DATEPARSE(date_format, [date_string]) |
Résultat | Date |
Définition | L’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.
Syntaxe | DATEPART(date_part, date, [start_of_week]) |
Résultat | Entier |
Définition | Renvoie 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.
Syntaxe | DATETRUNC(date_part, date, [start_of_week]) |
Résultat | Date |
Définition | Tronque 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, |
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, |
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 vrai si une chaîne 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. |
MAKEDATE
Syntaxe | MAKEDATE(year, month, day) |
Résultat | Date |
Définition | Renvoie 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 |
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
Syntaxe | MAKEDATETIME(date, time) |
Résultat | Datetime |
Définition | Renvoie 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
Syntaxe | MAKETIME(hour, minute, second) |
Résultat | Datetime |
Définition | Renvoie 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
Syntaxe | MAX(expression) ou MAX(expr1, expr2) |
Résultat | Date (voir les remarques) |
Définition | MAX 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 |
Renvoie une valeur null si un argument est une valeur null. |
MIN
Syntaxe | MIN(expression) ou MIN(expr1, expr2) |
Résultat | Date (voir les remarques) |
Définition | MIN 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 |
Renvoie une valeur null si un argument est une valeur null. |
MONTH
Syntaxe | MONTH(date) |
Résultat | Entier |
Définition | Renvoie le mois d'une date donnée sous la forme d'un nombre 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 | 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
Syntaxe | QUARTER(date) |
Résultat | Entier |
Définition | Renvoie le trimestre d'une date donnée sous la forme d'un nombre 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 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
Syntaxe | WEEK(date) |
Résultat | Entier |
Définition | Renvoie la semaine d'une date donnée sous la forme d'un nombre 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 nombre entier. |
Exemple | YEAR(#1986-03-25#) = 1,986 |
Remarques | Voir aussi DAY, WEEK, MONTH, QUARTER et les équivalents ISO. |
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 nombre entier. |
Exemple | ISOQUARTER(#1986-03-25#) = 1 |
Remarques | Voir aussi ISOWEEK, ISOWEEKDAY, ISOYEAR et les é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 nombre entier. |
Exemple | ISOWEEK(#1986-03-25#) = 13 |
Remarques | Voir aussi ISOWEEKDAY, ISOQUARTER, ISOYEAR et les équivalents non ISO. |
ISOWEEKDAY
Syntaxe | ISOWEEKDAY(date) |
Résultat | Entier |
Définition | Renvoie 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 |
Remarques | Voir aussi ISOWEEK, ISOQUARTER, ISOYEAR et les é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 nombre entier. |
Exemple | ISOYEAR(#1986-03-25#) = 1,986 |
Remarques | Voir 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_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 "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 :
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.