Administrátori v službe Oracle Analytics nastavia predvolené časové pásmo používané pre výpočty dátumu a času v sekcii Systémové nastavenia. Toto globálne nastavenie sa vzťahuje na všetky výpočty. Táto téma vysvetľuje, ako použiť funkciu TIMESTAMPADD
na zadanie iného časového pásma, ak chcete v konkrétnom výpočte použiť inú časovú značku.
Nastavenie predvoleného časového pásma pre výpočty v systémových nastaveniach
CURRENT_DATE
CURRENT_TIME()
CURRENT_TIMESTAMP()
NOW()
Ako administrátor môžete časovú značku použitú vo výpočtoch zmeniť pomocou voľby Predvolené časové pásmo pre výpočty dátumu v konzole v sekcii Rozšírené systémové nastavenia. Z rozbaľovacieho zoznamu vyberte požadované časové pásmo a vykonajte potrebné zmeny, aby sa nová hodnota mohla prejaviť.
.png
Ďalšie informácie o globálnych nastaveniach časového pásma nájdete v časti Systémové nastavenia - voľby formátovania.
Použitie konkrétneho časového pásma pre časové značky vo výpočtoch
Ak chcete vo svojich výpočtoch vygenerovať časovú značku inú než systémové nastavenie, použite funkciu TIMESTAMPADD
spolu s funkciou CURRENT_TIMESTAMP()
alebo NOW()
. Základný výpočet TIMESTAMPADD
je:
TIMESTAMPADD(SQL_TSI_<<interval>>, <<integer expression>>, <<timestamp expression>>)
Pri výpočtoch časových značiek sa ako interval použije HOUR
a časový posun je rozdiel v hodinách medzi časom UTC a časovým pásmom, ktoré sa bude používať v zostave. Príklad:
TIMESTAMPADD(SQL_TSI_HOUR, -6,CURRENT_TIMESTAMP(5))
Tento výpočet vráti aktuálnu časovú značku v horskom čase USA. Nový stĺpec časovej značky môžete vytvoriť ako odvodený stĺpec v zdroji logickej tabuľky alebo ho mapovať priamo k databáze. Rozdiel je v tom, kde sa má výpočet vykonať, čiže v službe Oracle Analytics alebo v databáze. Na nasledujúcom obrázku je znázornený výpočet mapovaný priamo k databáze v dialógovom okne Výraz v nástroji Expression Builder.
Keď je predvolené časové pásmo nastavené na UTC, funkcia CURRENT_DATE
nevráti správny dátum pre určité hodiny dňa vzhľadom na časové pásmo používateľa. Keď je napríklad čas UTC polnoc, počas trvania časového posunu sa lokálny dátum nezhoduje s dátumom UTC.
Tento problém vyrieši prevod výpočtu časovej značky na dátum. Príklad:
cast(TIMESTAMPADD(SQL_TSI_HOUR, -6,CURRENT_TIMESTAMP) as date)
Na nasledujúcom obrázku je znázornený výpočet, ktorý je vytvorený ako odvodený stĺpec v dialógovom okne Odvodený logický stĺpec v nástroji Expression Builder.
Pri jedinečných alebo jednorazových zostavách môžete výpočty časových značiek vytvárať na úrovni zostavy buď vo vizualizácii dát, alebo v klasickej analýze. Ak plánujete výpočty opakovane používať, často je jednoduchšie definovať ich ako stĺpce v sémantickom modeli (alebo v súbore RPD).
Ďalšie informácie o funkciách uvedených v tejto téme nájdete v častiach Funkcie dátumu a času a Funkcie časovej série.