KNOWLEDGE BASE

Calcoli di data, filtri e time stamp mostrano risultati inaspettati dopo la pubblicazione


Pubblicato: 01 Oct 2013
Data dell'ultima modifica: 19 Dec 2019

Problema

Dopo la pubblicazione di una cartella di lavoro o di un'origine dati, i calcoli basati su NOW() o TODAY(), i filtri di date relative e i time stamp (come l'ultimo aggiornamento) mostrano risultati imprevisti. I calcoli, i filtri e i time stamp sembrano essere calcolati in un diverso fuso orario.

Ambiente

  • Tableau Online
  • Tableau Server

Soluzione

Per impostare il fuso orario dei campi data e data/ora presenti nella vista:

  1. Apri la cartella di lavoro in Tableau Desktop.
  2. Seleziona Analisi > Crea campo calcolato.
    • Per un campo data/ora, crea un calcolo simile al seguente:
      DATEADD('hour',<number of hours>,[<datetime field>])
    • Per un campo solo data, crea un calcolo simile al seguente:
      IF DATEPART('hour', NOW()) > <PST time of midnight> then DATEADD('day', 1, <datetime field>) else <datetime field> end
      • Ad esempio: IF DATEPART('ora', NOW()) > 6 THEN DATEADD('giorno', 1, [Data]) else [Data] END Questa espressione aggiunge un giorno in più al campo data denominato "Data" se l'ora è superiore a 6 ore dopo la mezzanotte, altrimenti la data rimane la stessa. 
      • Per maggiori informazioni sulle funzioni data DATEPART o DATEADD, vedi Funzioni data nella Guida di Tableau. 
  3. Sostituisci il campo data/ora utilizzato nella vista con il campo calcolato appena creato.
  4. Ripubblica la cartella di lavoro oppure origine dati.


Sostituisci un filtro data relativa con un calcolo che filtra all'ora più recente nel set di dati:

  1. Crea un calcolo come il seguente:
    [DateTimeField] >= {FIXED: MAX(DATETRUNC('hour',[CampoDataOra]))} 
  2. Posiziona il calcolo sullo spazio Filtro, scegli di mostrare "True".


Per sostituire un filtro data relativa con un calcolo che filtra all'"ora attuale" nel fuso orario desiderato:

  1. Crea calcoli come i seguenti. Nota: il seguente si converte da Pacific Time (Tableau Online 10ay) a Eastern Time (utente ipotetico):
    [DateTimeField] >= DATEADD('hour', 3, NOW()) 
  2. Posiziona il calcolo sullo spazio Filtro, scegli di mostrare "True".

Causa

Dopo la pubblicazione di un'origine dati o di una cartella di lavoro, NOW(), TODAY(), i filtri di date relative e time stamp sono localizzati nel fuso orario di Tableau Server o Tableau Online.

 

Ulteriori informazioni

Il numero di ore per il cambio dell'ora può variare se nella tua area è in vigore l'ora legale.Il seguente calcolo converte l'ora UTC nel fuso orario degli Stati Uniti (costa del Pacifico), presupponendo che l'ora legale inizi la seconda domenica di marzo e termini la prima domenica di novembre):
DATEADD('hour',
IF [<campo data/ora>] <= IFNULL(
    { FIXED DATETRUNC('year', [<campo data/ora>]) : MIN(
    IF DATEPART('month', [<campo data/ora>]) = 3
    THEN
    DATEADD('minute', 119, DATEADD('day',    IF DATEPART('weekday', DATETRUNC('month', [<campo data/ora>])) >1
    THEN 7 - (DATEPART('weekday', DATETRUNC('month', [<campo data/ora>])) - 1)
    ELSE 0
    END
    + 7,    DATETRUNC('month', [<campo data/ora>])
    ))
    END
    )}
, TODAY()+1)
OR [<campo data/ora>] >=
    { FIXED DATETRUNC('year', [<campo data/ora>]) : MIN(IF DATEPART('month', [<campo data/ora>]) = 11
    THEN
    DATEADD('minute', 119, DATEADD('day',    IF DATEPART('weekday', DATETRUNC('month', [<campo data/ora>])) >1
    THEN 7 - (DATEPART('weekday', DATETRUNC('month', [<campo data/ora>])) - 1)
    ELSE 0
    END,    DATETRUNC('month', [<campo data/ora>])
    ))
    END
    )}
THEN -8
ELSE -7
END,
[<campo data/ora>])



Commenta questo articolo... Feedback Forum
Con questo articolo hai risolto il problema?