Loading

Tableau renvoie un horodatage différent de celui qui s'affichait dans Snowflake lors de la connexion à Snowflake

Date de publication: Aug 24, 2022
Description

Lors de la connexion à Snowflake, Tableau renvoie un horodatage différent de celui affiché dans Snowflake. Ce problème peut survenir si vous travaillez avec des types de champ TIMESTAMP_TZ et TIMESTAMP_LTZ, ou quand current_timestamp est renvoyé de la base de données alors que l'ordinateur de l'utilisateur final est configuré sur un fuseau horaire différent de celui spécifié par le paramètre TIMEZONE pour son compte/sa session ou si la base de données Snowflake se trouve sur un fuseau horaire différent.

Étant donné que Tableau interroge la base de données en utilisant les horodatages du fuseau horaire de l'ordinateur local, si le fuseau horaire dans Snowflake est différent, les données renvoyées risquent d'être incorrectes, ou aucune donnée n'est renvoyée.

Notez également que, si vous vous connectez à une base de données Snowflake se trouvant dans un fuseau horaire différent, current_timestamp et now() renvoient des valeurs différentes. À savoir, now() renvoie la date dans le fuseau horaire de la source de données tandis que current_timestamp renvoie la date dans le fuseau horaire de l'ordinateur local.

Cause

Ce comportement est actuellement attendu. Lorsque vous utilisez le pilote Snowflake ODBC, le paramètre TIMEZONE de Snowflake n'est pas respecté par les clients. Les champs associé à un fuseau horaire spécifié dans Snowflake renverront toujours l'heure dans le fuseau horaire de l'ordinateur local.

Pour plus d'informations sur ce comportement, consultez le billet suivant de la communauté Snowflake : ODBC/JDBC TIMESTAMP_LTZ et clients tiers

 
Résolution
Pour que Tableau renvoie l'horodatage dans le même fuseau horaire que celui spécifié dans Snowflake, veuillez utiliser l'une des options suivantes :
 
  1. Modifiez tous les champs DateTime sur le type de champ TIMESTAMP_NTZ dans la base de données, ou utilisez SQL personnalisé pour convertir des champs dans ce type.
  2. Faites en sorte que l'administrateur Snowflake mette à jour le compte utilisateur de manière à ce que le paramètre TIMEZONE corresponde au fuseau horaire de son ordinateur local.
  3. À l'aide de SQL initial dans Tableau, modifiez le paramètre TIMEZONE pour cette session afin qu'il corresponde au fuseau horaire de l'ordinateur local :
ALTER SESSION SET TIMEZONE = 'UTC';

 

Ressources supplémentaires
La différence entre les deux valeurs a été introduite lorsque le problème avec l'ID : 669546 a été distribué en 20183. Comme documenté dans l'aide de Tableau Cloud, « NOW() retourne l'heure du serveur de la source de données ». Étant donné que current_time n'est pas invoqué nativement par Tableau Desktop, la valeur est retournée directement depuis le pilote dans le fuseau horaire de l'ordinateur local.

 
Numéro d’article de la base de connaissances

001471936

 
Chargement
Salesforce Help | Article