BASE DE CONOCIMIENTO

Los cálculos de fecha, los filtros y las marcas de tiempo muestran resultados imprevistos después de la publicación


Publicado: 01 Oct 2013
Fecha de la última modificación: 09 May 2023

Problema

Después de publicar una fuente de datos o un libro de trabajo, los cálculos basados en NOW(), TODAY(), los filtros de fechas relativas y las marcas de tiempo (por ejemplo, la de última actualización) muestran resultados imprevistos. Aparentemente, los cálculos, los filtros y las marcas de tiempo se han calculado en otra zona horaria.

Entorno

  • Tableau Cloud
  • Tableau Server

Solución

Para ajustar la zona horaria de los campos de fecha y fecha y hora que se muestran en la vista:

  1. Abra el libro de trabajo en Tableau Desktop.
  2. Seleccione Análisis > Crear campo calculado.
    • Para un campo de fecha y hora, cree un cálculo parecido al siguiente:
      DATEADD('hour',<number of hours>,[<datetime field>])
    • Para un campo de solo fecha, cree un cálculo parecido al siguiente:
      IF DATEPART('hour', NOW()) > <PST time of midnight> then DATEADD('day', 1, <datetime field>) else <datetime field> end
      • Por ejemplo: IF DATEPART('hour', NOW()) > 6 THEN DATEADD('day', 1, [Fecha]) else [Fecha] END. Esta expresión añade un día más en el campo de fecha llamado "Fecha" si la hora supera la medianoche en 6 horas; de lo contrario, la fecha sigue siendo la misma.
      • Para obtener más información acerca de las funciones de fecha DATEPART o DATEADD, consulte Funciones de fecha en la ayuda de Tableau. 
  3. Sustituya el campo de fecha y hora utilizado en la vista por el campo calculado nuevo.
  4. Vuelva a publicar el libro de trabajo o la fuente de datos.


Para sustituir un filtro de fecha relativa por un cálculo que filtre a la hora más reciente en el conjunto de datos:

  1. Cree un cálculo como el siguiente:
    [DateTimeField] >= {FIXED: MAX(DATETRUNC('hour',[DateTimeField]))} 
  2. Coloque el cálculo en el estante Filtro y seleccione la opción para que se muestre "True".


Para sustituir un filtro de fecha relativa por un cálculo que filtre a "esta hora" en la zona horaria deseada:

  1. Cree un cálculo como el siguiente. Tenga en cuenta que el siguiente cálculo convierte la hora del Pacífico (Tableau Cloud 10) a la hora del este de Norteamérica (usuario hipotético):
    [DateTimeField] >= DATEADD('hour', 3, NOW()) 
  2. Coloque el cálculo en el estante Filtro y seleccione la opción para que se muestre "True".

Causa

Después de publicar una fuente de datos o un libro de trabajo, NOW(), TODAY(), los filtros de fechas relativas y las marcas de tiempo se localizan a la zona horaria de Tableau Server o Tableau Cloud.

 

Información adicional

El número de horas para el cambio de hora puede variar si su zona horaria aplica cambios estacionales. El siguiente cálculo convierte el formato UTC a la hora del Pacífico, teniendo en cuenta que los cambios estacionales de la hora se producen el segundo domingo de marzo y el primer domingo de noviembre:
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>])


Funciones de fecha
La función NOW() devuelve la hora en formato UTC 
 
¿Fue de ayuda este artículo para resolver el problema?