Keboola/Snowflake – pozor na datum

Musím si dát pozor na funkce pracující s datem. Funkce pro zobrazení aktuálního data/času vrací moji aktuální hodnotu.
Ale jakmile chci část dne, je to špatně.

SELECT getdate(), current_timestamp();
-- vrací 2022-06-29 12:23:46.531

SELECT HOUR (getdate()),DATE_PART(HOUR, getdate());
-- vrací 3 místo 12

-- celé datum/čas pak vypadá:
SELECT year(getdate())  || '-' || month(getdate())  || '-' || day(getdate()) || ' ' || hour(getdate()) || ':' || minute(getdate());
-- vrací 2022-6-29 3:25

Bere zjevně datum/čas z jiné timezone, u mě konkrétně America/Los_Angeles.

show parameters like 'timezone%';
--vrací 'America/Los_Angeles'

Dost mě to zaskočilo, protože tyto funkce beru jako že se provede vnitřní funkce a na výsledek se aplikuje vnější funkce.

„Oprava“ je jednoduchá – na začátku scriptu nastavit moji timezone:
ALTER SESSION SET TIMEZONE = ‚Europe/Warsaw‘

ALTER SESSION SET TIMEZONE = 'Europe/Warsaw';
--nebo rovnou
ALTER SESSION SET WEEK_START = 1,WEEK_OF_YEAR_POLICY = 0,TIMEZONE = 'Europe/Warsaw';

Posted

in

by

Tags:

Comments

Napsat komentář

[zoom]