Loading
Salesforce から送信されるメールは、承認済ドメインからのみとなります続きを読む

Snowflake に接続すると、Tableau が、Snowflake に表示されるタイムスタンプとは異なるタイムスタンプを返す

公開日: Aug 24, 2022
説明

Snowflake に接続すると、Tableau が、Snowflake に表示されるタイムスタンプとは異なるタイムスタンプを返します。この問題は、エンドユーザーのマシンが、エンドユーザーのアカウント/セッションの TIMEZONE パラメーターによって指定されたタイム ゾーンとは異なるタイム ゾーンに設定れているとき、または Snowflake データベースが異なるタイム ゾーンにあるときに、TIMESTAMP_TZ および TIMESTAMP_LTZ フィールド タイプを使用しているか、データベースから current_timestamp を返すときに発生する可能性があります。

Tableau はローカル マシンのタイムゾーンのタイムスタンプを使用して、データベースに対してクエリを実行するため、Snowflake のタイムゾーンが異なる場合は、返されるデータが正しくないか、データがまったく返されません。

また、異なるタイム ゾーンにある Snowflake に接続すると、current_timestamp と now() が異なる値を返すことに注意する必要があります。つまり、now() はデータ ソース タイム ゾーンの日付を返しますが、current_timestamp はローカル マシン タイム ゾーンの日付を返します。

Cause

現在、この動作は予想されたものです。Snowflake ODBC ドライバーを使用するときに、クライアントは Snowflake の TIMEZONE 設定に従いません。Snowflake の指定タイム ゾーンを持つフィールドは、ローカル マシン タイム ゾーンの時刻を常に返します。

この動作に関する詳細については、次の Snowflake コミュニティの投稿を参照してください。ODBC/JDBC TIMESTAMP_LTZ and 3rd party clients

 
解決策
Tableau が、Snowflake で指定されたタイム ゾーンのタイムスタンプと同じタイムスタンプを返すようにするには、次のいずれかのオプションを使用してください。
 
  1. データベースですべての DateTime フィールドを TIMESTAMP_NTZ フィールド タイプに変更するか、カスタム SQL を使用して、このタイプにフィールドをキャストします。
  2. Snowflake 管理者にユーザー アカウントを更新してもらい、TIMEZONE パラメーターの設定がローカル マシンのタイム ゾーンと一致するようにします。
  3. Tableau で初期 SQL を使用して、そのセッションの TIMEZONE パラメーターを変更し、ローカル マシンのタイム ゾーンと一致するようにします。
ALTER SESSION SET TIMEZONE = 'UTC';

 

その他のリソース
2 つの値の違いは、20183 で問題 (ID: 669546) がリリースされたときに導入されました。Tableau Cloud ヘルプに記載されているように、「NOW() はデータ ソースのサーバー時間を返します」。current_time は Tableau Desktop によってネイティブに呼び出されないため、値は、ローカル マシンのタイム ゾーンにあるドライバーから直接返されます。

 
ナレッジ記事番号

001471936

 
読み込み中
Salesforce Help | Article