BASE DE DADOS DE CONHECIMENTO

As funções NOW() e TODAY() retornam datas e horas em um fuso horário inesperado


Publicado: 04 Mar 2013
Data da última modificação: 23 Oct 2023

Problemas

Ao usar a função NOW() ou TODAY() em um campo calculado, o Tableau Desktop retorna a hora em um fuso horário diferente; ou ao usar um filtro de data relativa, a data de referência aparecerá em um fuso horário diferente.

Ambiente

  • Tableau Desktop
  • PostgreSQL
  • Repositório do Tableau Server (fonte de dados PostgreSQL)
  • Amazon Redshift
  • Conexão em tempo real com uma fonte de dados hospedada em um computador com fuso horário diferente

Resolução

Opção 1:

Use uma extração. Para obter mais informações, consulte Extrair seus dados.


Opção 2:

Use um cálculo com a função DATEADD() para considerar a compensação do fuso horário.
Exemplo 1:
  • Para converter UTC em PST (Horário padrão do Pacífico), a fórmula: NOW()
  • Poderia se tornar: DATEADD('hour', -8, NOW())

Observação: durante o horário de verão, a diferença de horário entre UTC e PDT será de -7 horas.

Exemplo 2:

Para converter UTC em PST (Horário padrão do Pacífico) em um filtro de data relativo:

  1. Remova o filtro de data da divisória Filtros
  2. Selecione Análise > Criar campo calculado.
  3. Na caixa de diálogo Campo calculado que é aberta, faça o seguinte e clique em OK:
    • Nomeie o campo calculado. Neste exemplo, o campo calculado é chamado de "Filtro dos últimos 3 dias"
    • No campo de fórmula, crie um cálculo similar ao seguinte:

      [Date Field] >= DATEADD('day', -3, DATEADD( 'hour', -8, TODAY() ) )

  4. Arraste [Last 3 Days Filter (Filtro dos últimos 3 dias)] para a divisória Filtro.
  5. Na caixa de diálogo Filtrar, selecione Verdadeiro e clique em OK.

 

Causa

Ao fazer uma conexão em tempo real, o Tableau Desktop faz uma consulta na fonte de dados por NOW() ou TODAY(). Se a fonte de dados estiver hospedada em um computador com um fuso horário diferente, a fonte de dados pode retornar a hora nesse outro fuso.

As conexões em tempo real com o Redshift e o PostgreSQL são projetadas para exibir o horário padrão UTC devido a inconsistências no modo como essas fontes de dados lidam com as compensações de data e hora e de fuso horário.

 
Este artigo resolveu o problema?