BASE DE DADOS DE CONHECIMENTO

Cálculos de data, Filtros e Carimbos de hora exibem resultados inesperados após a publicação


Publicado: 01 Oct 2013
Data da última modificação: 19 Dec 2019

Problemas

Após publicar uma pasta de trabalho ou fonte de dados, os cálculos com base em NOW() ou TODAY(), Filtros de data relativa e carimbos de hora (como a última atualização) mostram resultados inesperados. Os cálculos, filtros e carimbos de hora parecem ser calculados em um fuso horário diferente.

Ambiente

  • Tableau Online
  • Tableau Server

Resolução

Para ajustar o fuso horário dos campos data e data/hora mostrados na exibição:

  1. Abra a pasta de trabalho no Tableau Desktop.
  2. Selecione Análise > Criar campo calculado.
    • Para um campo de data/hora, crie um cálculo semelhante ao seguinte:
      DATEADD('hour',<number of hours>,[<datetime field>])
    • Para um campo apenas de data, crie um cálculo semelhante ao seguinte:
      IF DATEPART('hour', NOW()) > <PST time of midnight> then DATEADD('day', 1, <datetime field>) else <datetime field> end
      • ​Por exemplo: IF DATEPART('hour', NOW()) > 6 THEN DATEADD('day', 1, [Date]) else [Date] END - Essa expressão adiciona mais um dia ao campo de data chamado "Date" se a hora for superior a 6 horas pós meia-noite, caso contrário a data permanece a mesma.
      • Para obter mais informações sobre as funções de data DATEPART ou DATEADD, consulte Funções de data na Ajuda do Tableau.
  3. Substitua o campo de data/hora usado na exibição com o campo calculado criado recentemente.
  4. Publique novamente uma pasta de trabalho ou fonte de dados.


Para substituir um Filtro de data relativa por um cálculo que filtra até a hora mais recente no conjunto de dados:

  1. Crie um cálculo como este:
    [DateTimeField] >= {FIXED: MAX(DATETRUNC('hour',[DateTimeField]))} 
  2. Coloque o cálculo na divisória Filtro e escolha mostrar "True"


Para substituir um Filtro de data relativa por um cálculo que filtra até "esta hora" no fuso horário desejado:

  1. Crie um cálculo como este: observe que, o seguinte converte o horário do Pacífico (Tableau Online 10ay) para o horário do Leste (usuário hipotético):
    [DateTimeField] >= DATEADD('hour', 3, NOW()) 
  2. Coloque o cálculo na divisória Filtro e escolha mostrar "True"

Causa

Após publicar uma fonte de dados ou pasta de trabalho, AGORA(), HOJE(), Filtros de data relativas e os carimbos de hora são localizados no fuso horário do Tableau Server ou Tableau Online.

 

Informações adicionais

O número de horas para mudar o horário pode mudar se a sua área seguir o horário de verão.O cálculo a seguir converte o UTC no horário do Pacífico, supondo que o horário de verão comece no 2º domingo de março e termine no 1º domingo de novembro):
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>])



Discuta este artigo... Fórum de comentários
Este artigo resolveu o problema?