以下の内容はhttps://dk521123.hatenablog.com/entry/2024/10/10/002436より取得しました。


【Snowflake】Snowflake ~ Timezone ~

■ はじめに

https://dk521123.hatenablog.com/entry/2024/10/09/155708

で、以下「SQL文」でトラブルシュートしていたのだが、
QUERY_HISTORYビューのSTART_TIMEとEND_TIME(特にSTART_TIME)
の時間帯が全く身に覚えない時間帯で実行されていて調べてみたら
SnowflakeのTimezoneのデフォルトがUTCじゃないことを知った。

 そこで、今回は、その調査結果も踏まえて、
SnowflakeのタイムゾーンTimezoneに関して、纏めてみた

SQL

SELECT
  CONVERT_TIMEZONE('UTC', 'Asia/Tokyo', START_TIME),
  CONVERT_TIMEZONE('UTC', 'Asia/Tokyo', END_TIME),
  *
FROM
  SNOWFLAKE.ACCOUNT_USAGE.QUERY_HISTORY
...

目次

【0】注意点:SnowflakeのデフォルトTimezone
【1】デフォルトTimezone の調べ方
【2】Timezone を変更するには
 1)一時的に変更する
 2)恒久的に変更する
【3】Timezone に関する関数
 1)CONVERT_TIMEZONE

【0】注意点:SnowflakeのデフォルトTimezone

* SnowflakeのデフォルトTimezone は、
 JSTでもなく、UTCでもなく、
 『America/Los_Angeles(米国太平洋標準時 PST; Pacific Standard Time)』

https://www.hulft.com/help/ja-jp/WebFT-V3/COM-ADM/Content/WEBFT_ADM_COM/TimeZone/timezonelist.htm

【1】デフォルトTimezone の調べ方

SHOW PARAMETERS LIKE 'TIMEZONE';
# default は UTC じゃなく「America/Los_Angeles」...

|-------------+-----------------------+-------------------------+-----+------------|
| key             | value                          | default                          | level | description |
|-------------+-----------------------+-------------------------+-----+------------|
| TIMEZONE | America/Los_Angeles | America/Los_Angeles  |         | time zone |

https://docs.snowflake.com/ja/sql-reference/parameters#timezone

アカウント/ユーザ/セッション単位で確認

SHOW PARAMETERS LIKE 'TIMEZONE' IN ACCOUNT;
SHOW PARAMETERS LIKE 'TIMEZONE' IN USER;
SHOW PARAMETERS LIKE 'TIMEZONE' IN SESSION;

【2】Timezone を変更するには

1)一時的に変更する

-- TIMEZONE を UTC時間に設定
ALTER SESSION SET TIMEZONE = 'UTC';

https://docs.snowflake.com/ja/user-guide/date-time-examples.html

2)恒久的に変更する

-- アカウント単位でTIMEZONE を UTC時間に設定
ALTER ACCOUNT SET TIMEZONE = 'UTC';

https://docs.snowflake.com/ja/sql-reference/sql/alter-account
補足:ユーザ単位での変更

-- 用途はあんまりなさそうだが
-- ユーザ単位でTIMEZONE を UTC時間に設定
ALTER USER SET TIMEZONE = 'UTC';

https://docs.snowflake.com/ja/sql-reference/sql/alter-user

【3】Timezone に関する関数

1)CONVERT_TIMEZONE

* タイムスタンプを別のタイムゾーンに変換

https://docs.snowflake.com/ja/sql-reference/functions/convert_timezone

構文

CONVERT_TIMEZONE( <source_tz> , <target_tz> , <source_timestamp_ntz> )

CONVERT_TIMEZONE( <target_tz> , <source_timestamp> )

サンプル

SELECT
  CONVERT_TIMEZONE('America/Los_Angeles', 'Asia/Tokyo', START_TIME) AS START,
  CONVERT_TIMEZONE('America/Los_Angeles', 'Asia/Tokyo', END_TIME) AS END,
  *
FROM
  SNOWFLAKE.ACCOUNT_USAGE.QUERY_HISTORY
ORDER BY
  START_TIME DESC
LIMIT
  100
;

参考文献

https://qiita.com/yappoi3/items/6a7dfbc9f82efccb3cfb
https://zenn.dev/kommy339/articles/f84312dda0d7d8

関連記事

Snowflake ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2021/11/02/130111
Snowflake ~ 入門編 / Hello world
https://dk521123.hatenablog.com/entry/2021/11/22/212520
Snowflake ~ 基本編 / データ型 ~
https://dk521123.hatenablog.com/entry/2021/12/16/095524
Snowflake ~ 基本編 / キャスト ~
https://dk521123.hatenablog.com/entry/2021/12/15/162658
Snowflake ~ 日時関連 ~
https://dk521123.hatenablog.com/entry/2022/06/17/113003
Snowflake ~ 日時関連 / 日時取得関数 ~
https://dk521123.hatenablog.com/entry/2022/09/02/092144
Snowflake ~ 文字列操作関連 ~
https://dk521123.hatenablog.com/entry/2022/10/01/000000
Snowflake ~ QUERY_HISTORY ビュー ~
https://dk521123.hatenablog.com/entry/2024/10/09/155708




以上の内容はhttps://dk521123.hatenablog.com/entry/2024/10/10/002436より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14