Loading

Tableau gibt beim Herstellen einer Verbindung mit Snowflake nicht den in Snowflake angezeigten Zeitstempel zurück

Veröffentlichungsdatum: Aug 24, 2022
Beschreibung

Beim Herstellen einer Verbindung mit Snowflake gibt Tableau nicht den in Snowflake angezeigten Zeitstempel zurück. Dieses Problem kann auftreten, wenn Sie mit den Felttyp TIMESTAMP_TZ und TIMESTAMP_LTZ arbeiten oder "current_timestamp" von der Datenbank zurückgegeben werden soll, während auf dem Computer des Benutzers eine andere Zeitzone festgelegt ist als durch den TIMEZONE-Parameter für Benutzerkonto/-Sitzung vorgegeben oder die Snowflake-Datenbank sich in einer anderen Zeitzone befindet. 

Da Tableau die Datenbank mithilfe von Zeitstempeln in der lokalen Zeitzone des Computers abfragt, kommt es dazu, dass die zurückgegebenen Daten inkorrekt sind oder gar keine Daten zurückgegeben werden, wenn in Snowflake eine andere Zeitzone angegeben ist.

Beachten Sie, dass beim Herstellen einer Verbindung mit Snowflake (wenn Snowflake sich in einer anderen Zeitzone befindet) "current_timestamp" und "now()" abweichende Werte zurückgeben. Sprich: "now()" gibt das Datum in der Zeitzone der Datenquelle zurück, und "current_timestamp" gibt das Datum in der Zeitzone des lokalen Computers zurück.

Cause

Dieses Verhalten ist derzeit zu erwarten. Wenn Sie den Snowflake ODBC-Treiber nutzen, wird die TIMEZONE-Einstellung von Snowflake nicht von den Clients berücksichtigt. Felder mit einer konkreten Zeitzone in Snowflake geben immer die lokale Zeit in der Zeitzone des Computers zurück.

Weitere Informationen zu diesem Verhalten finden Sie im Beitrag in der Snowflake-Community: ODBC/JDBC TIMESTAMP_LTZ and 3rd party clients

 
Lösung
Um sicherzustellen, dass Tableau den Zeitstempel in der in Snowflake festgelegten Zeitzone zurückgibt, setzen Sie eine der folgenden beiden Optionen um:
 
  1. Ändern Sie alle DateTime-Felder zum TIMESTAMP_NTZ-Feldtyp in der Datenbank oder nutzen Sie benutzerdefinierte SQL, um Felder in diesen Typ umzuwandeln.
  2. Bitten Sie den Snowflake-Administrator, das Benutzerkonto zu aktualisieren, damit die Einstellung für die TIMEZONE-Parameter mit der Zeitzone auf dem lokalen Computer übereinstimmt.
  3. Wenn Sie in Tableau das erste Mal SQL verwenden, ändern Sie die TIMEZONE-Parameter für diese Sitzung, damit sie mit der Zeitzone des lokalen Computers übereinstimmen:
ALTER SESSION SET TIMEZONE = 'UTC';

 

Zusätzliche Ressourcen
Diese Abweichung zwischen den beiden Werten ist aufgetreten, als das Problem mit der ID: 669546 in 20183 gelöst wurde. Wie in der Tableau Cloud-Hilfe beschrieben, "gibt NOW() die Serverzeit der Datenquelle zurück". Da "current_time" von Tableau Desktop nicht nativ aufgerufen wird, wird der Wert direkt vom Treiber in der Zeitzone des lokalen Computers zurückgegeben.

 
Nummer des Knowledge-Artikels

001471936

 
Laden
Salesforce Help | Article