Loading

Tableau restituisce un timestamp diverso da quello visualizzato in Snowflake durante la connessione a Snowflake

Data pubblicazione: Aug 24, 2022
Descrizione

Durante la connessione a Snowflake, Tableau restituisce un timestamp diverso da quello visualizzato in Snowflake. Questo problema può verificarsi quando si lavora con i tipi di campo TIMESTAMP_TZ e TIMESTAMP_LTZ o quando si restituisce current_timestamp dal database, mentre il computer dell'utente finale è impostato su un fuso orario diverso da quello specificato dal parametro TIMEZONE per il proprio account/sessione o il database Snowflake si trova in un fuso orario diverso. 

Poiché Tableau esegue le query sul database utilizzando i timestamp nel fuso orario del computer locale, se il fuso orario in Snowflake è diverso, i dati restituiti potrebbero non essere corretti o potrebbe non essere restituito alcun dato.

Va inoltre notato che, quando ci si connette a un database Snowflake situato in un fuso orario diverso, current_timestamp e now() restituiscono valori diversi. In particolare, now() restituisce la data nel fuso orario dell'origine dati, mentre current_timestamp restituisce la data nel fuso orario del computer locale.

Cause

Questo comportamento è attualmente previsto. Quando si utilizza il driver ODBC Snowflake, l'impostazione TIMEZONE di Snowflake non viene rispettata dai client. I campi con un fuso orario specificato in Snowflake restituiranno sempre l'ora nel fuso orario del computer locale.

Per maggiori informazioni su questo comportamento, consulta il seguente post nella community di Snowflake: ODBC/JDBC TIMESTAMP_LTZ and 3rd party clients

 
Risoluzione
Per assicurarti che Tableau restituisca il timestamp nello stesso fuso orario specificato in Snowflake, utilizza una delle seguenti opzioni:
 
  1. Modifica tutti i campi Data/ora nel tipo di campo TIMESTAMP_NTZ nel database o utilizza codice SQL personalizzato per eseguire il cast dei campi in questo tipo.
  2. Richiedi all'amministratore di Snowflake di aggiornare l'account utente in modo che l'impostazione del parametro TIMEZONE corrisponda al fuso orario del computer locale.
  3. Utilizzando SQL iniziale in Tableau, modifica il parametro TIMEZONE per la sessione in modo che corrisponda al fuso orario del computer locale:
ALTER SESSION SET TIMEZONE = 'UTC';

 

Risorse aggiuntive
La differenza tra i due valori è stata introdotta quando il problema con ID: 669546 è stato rilasciato nella versione 2018.3. Come documentato nella Guida di Tableau Cloud, "NOW() restituisce l'ora del server dell'origine dati". Poiché current_time non viene richiamato in modo nativo da Tableau Desktop, il valore viene restituito direttamente dal driver nel fuso orario del computer locale.

 
Numero articolo Knowledge

001471936

 
Caricamento
Salesforce Help | Article