Loading

Tableau devuelve una marca de hora diferente a la que aparece en Snowflake al conectarse a Snowflake

Fecha de publicación: Aug 24, 2022
Descripción

Al conectarse a Snowflake, Tableau devuelve una marca de tiempo diferente a la que aparece en Snowflake. Este problema puede darse cuando se trabajo con tipos de campos TIMESTAMP_TZ y TIMESTAMP_LTZ, o cuando se devuelve current_timestamp desde la base de datos, mientras el equipo del usuario final está configurado con una zona horaria diferente a la que indica el parámetro TIMEZONE para la cuenta o sesión o cuando la base de datos de Snowflake se encuentra en una zona horaria diferente. 

Debido a que Tableau consultará la base de datos usando las marcas de tiempo de la zona horaria del equipo local, si Snowflake tiene una zona horaria diferente, los datos devueltos podrían ser incorrectos o es posible que no se devuelva ningún dato.

También se debe tener en cuenta que, al conectarse a Snowflake cuando tiene una zona horaria diferente, los parámetros current_timestamp y now() devuelven valores diferentes. En concreto, now() devuelve la fecha en la zona horaria de la fuente de datos, mientras que current_timestamp devuelve la fecha en la zona horaria del equipo local.

Cause

Actualmente, se puede esperar este comportamiento. Al usar el controlador ODBC de Snowflake, los clientes no respetan la configuración TIMEZONE de Snowflake.Los campos con una zona horaria especificada en Snowflake devolverá siempre la hora de la zona horaria del equipo local.

Para obtener más información sobre este comportamiento, consulte la siguiente publicación de la comunidad de Snowflake: ODBC/JDBC TIMESTAMP_LTZ y clientes de terceros

 
Solución
Para garantizar que Tableau devuelve la marca de hora en la misma zona horaria especificada en Snowflake, use una de estas opciones:
 
  1. Cambie todos los campos de fecha y hora al tipo de campo TIMESTAMP_NTZ en la base de datos o use SQL personalizado para que los campos usen este tipo.
  2. Pida al administrador de Snowflake que edite la cuenta de usuario para que el parámetro TIMEZONE coincida con la zona horaria de su equipo local.
  3. Al usar SQL inicial en Tableau, cambie el parámetro TIMEZONE de esa sesión para que coincida con la zona horaria del equipo local:
ALTER SESSION SET TIMEZONE = 'UTC';

 

Recursos adicionales
La diferencia entre los dos valores se introdujo cuando el problema con ID se publicó en 20183. Tal y como aparece en la ayuda de Tableau Cloud, "NOW() returns the data source server time". Como Tableau Desktop no invoca de forma nativa current_time, el valor se devuelve directamente desde el controlador en la zona horaria del equipo.

 
Número del artículo de conocimiento

001471936

 
Cargando
Salesforce Help | Article