Snowflakeで現在の日本時間(jst)を取得する方法

Snowflakeを使っていて、現在時刻を登録したい時がありました。

ただ、そのままCURRENT_TIMESTAMP()で時間を取得するとSnowflakeデフォルトのタイムゾーンが邪魔して、日本の時間が取得できません。

デフォルトはAmerica/Los_Angelesで設定されているようですね。

なので次のような書き方で、時間を取得するようにしました。

CONVERT_TIMEZONE('Asia/Tokyo', CURRENT_TIMESTAMP()) AS CURRENT_TIMESTAMP

他にも時間の取得方法があったのでまとめておきます!

SQL
SELECT    
    CONVERT_TIMEZONE('Asia/Tokyo', CURRENT_TIMESTAMP()) AS CURRENT_TIMESTAMP, -- 現在
    YEAR(CURRENT_TIMESTAMP) AS CURRENT_YEAR, -- 今年
    CASE 
        WHEN LENGTH(MONTH(CURRENT_TIMESTAMP)) = 1 THEN CONCAT(0, MONTH(CURRENT_TIMESTAMP))
        ELSE  CONCAT(MONTH(CURRENT_TIMESTAMP))
    END AS CURRENT_DATE,
    CASE
        WHEN LENGTH(DAY(CURRENT_TIMESTAMP)) = 1 THEN CONCAT(0, DAY(CURRENT_TIMESTAMP))
        ELSE CONCAT(DAY(CURRENT_TIMESTAMP)) 
    END AS CURRENT_DAY,
    CONCAT(CURRENT_YEAR, '-', CURRENT_DATE),
    LAST_DAY(CURRENT_TIMESTAMP) -- 今月の最終日
;

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA