Loading

Les calculs de date, les filtres et les horodatages affichent des résultats inattendus après la publication

Date de publication: May 9, 2023
Description
Après la publication d'un classeur ou d'une source de données, les calculs basés sur NOW() ou TODAY(), les filtres Date relative et les horodatages (par exemple la dernière mise à jour) affichent des résultats inattendus. Les calculs, les filtres et les horodatages semblent avoir été calculés dans un fuseau horaire différent.

Cause

Après la publication d'une source de données ou d'un classeur, les filtres NOW(), TODAY(), Date relative, ainsi que les horodatages sont localisés sur le fuseau horaire de Tableau Server ou Tableau Cloud.

 
Résolution

Pour ajuster le fuseau horaire de la date et les champs date/heure affichés dans la vue :

  1. Ouvrez le classeur dans Tableau Desktop.
  2. Sélectionnez Analyse > Créer un champ calculé.
    • Dans le champ date/heure, créez un calcul de ce type :
      DATEADD('hour',<number of hours>,[<datetime field>])
    • Pour un champ de date seulement, créez un calcul de ce type :
      IF DATEPART('hour', NOW()) > <PST time of midnight> then DATEADD('day', 1, <datetime field>) else <datetime field> end
      • Par exemple : IF DATEPART('hour', NOW()) > 6 THEN DATEADD('day', 1, [Date]) else [Date] END Cette expression ajoute un jour supplémentaire au champ de date appelé « Date » si minuit est dépassé de 6 heures, sinon la date reste la même.
      • Pour plus d'informations sur les fonctions de date DATEPART ou DATEADD, consultez Fonctions de date dans l'aide de Tableau. 
  3. Remplacez le champ date/heure utilisé dans la vue par le champ calculé que vous venez de créer.
  4. Republiez le classeur ou la source de données.


Pour remplacer un filtre de date relative par un calcul appliquant un filtre d'heure la plus récente à l'ensemble de données :

  1. Créez un calcul de ce type :
    [DateTimeField] >= {FIXED: MAX(DATETRUNC('hour',[DateTimeField]))} 
  2. Placez le calcul sur l'étagère des filtres, choisissez d'afficher « True » 


Pour remplacer un filtre de date relative par un calcul appliquant un filtre « cette heure » dans le fuseau horaire souhaité :

  1. Créez un calcul de ce type : Notez que la formule suivante convertit Pacific Time (Tableau Cloud 10ay) en Eastern Time (utilisateur hypothétique) :
    [DateTimeField] >= DATEADD('hour', 3, NOW()) 
  2. Placez le calcul sur l'étagère des filtres, choisissez d'afficher « True » 
Ressources supplémentaires
Le nombre d'heure pour le décalage horaire peut changer si votre région applique l'heure d'été. Le calcul suivant convertit l'heure UTC en Heure du Pacifique (en partant de l'hypothèse que l'heure d'été commence le 2nd dimanche de mars et prend fin le 1er dimanche de novembre) :
DATEADD('hour',
IF [<datetime field>] <= IFNULL(
    { FIXED DATETRUNC('year', [<datetime field>]) : MIN(
    IF DATEPART('month', [<datetime field>]) = 3
    THEN
    DATEADD('minute', 119, DATEADD('day',    IF DATEPART('weekday', DATETRUNC('month', [<datetime field>])) >1
    THEN 7 - (DATEPART('weekday', DATETRUNC('month', [<datetime field>])) - 1)
    ELSE 0
    END
    + 7,    DATETRUNC('month', [<datetime field>])
    ))
    END
    )}
, TODAY()+1)
OR [<datetime field>] >=
    { FIXED DATETRUNC('year', [<datetime field>]) : MIN(IF DATEPART('month', [<datetime field>]) = 11
    THEN
    DATEADD('minute', 119, DATEADD('day',    IF DATEPART('weekday', DATETRUNC('month', [<datetime field>])) >1
    THEN 7 - (DATEPART('weekday', DATETRUNC('month', [<datetime field>])) - 1)
    ELSE 0
    END,    DATETRUNC('month', [<datetime field>])
    ))
    END
    )}
THEN -8
ELSE -7
END,
[<datetime field>])


Fonctions de date
La fonction NOW() retourne l'heure UTC 
 
Numéro d’article de la base de connaissances

001473770

 
Chargement
Salesforce Help | Article