În Oracle Analytics, administratorii setează fusul oral prestabilit utilizat pentru calculele datei şi orei în Setări de sistem. Această setare globală se aplică tuturor calculelor. Acest subiect explică cum se utilizează funcţia TIMESTAMPADD
pentru a specifica un alt fus orar dacă doriţi să utilizaţi alt marcaj temporal dintr-un anumit calcul.
Setaţi fusul orar prestabilit pentru calcule în Setări de sistem
CURRENT_DATE
CURRENT_TIME()
CURRENT_TIMESTAMP()
NOW()
În calitate de administrator, puteţi modifica marcajul temporal utilizat în calcule prin intermediul opţiunii Fus orar prestabilit pentru calculele de date din consolă, în Setări de sistem avansate. Selectaţi fusul orar dorit din lista derulantă şi aplicaţi modificările pentru ca noua valoare să fie aplicată.
.png
Pentru mai multe informaţii despre setările globale pentru fusul orar, consultaţi Setări de sistem - Opţiuni de formatare.
Utilizaţi un anumit fus orar pentru marcajele temporale în Calcule
Pentru a genera un marcaj temporal diferit de cel al setărilor de sistem pentru calculele dvs., utilizaţi funcţia TIMESTAMPADD
împreună cu CURRENT_TIMESTAMP()
or NOW()
. Calculul TIMESTAMPADD
de bază este:
TIMESTAMPADD(SQL_TSI_<<interval>>, <<integer expression>>, <<timestamp expression>>)
Pentru calculele marcajului temporal, HOUR
este intervalul, iar decalajul temporal este diferenţa în ore dintre UTC şi fusul orar pentru care se raportează. De exemplu:
TIMESTAMPADD(SQL_TSI_HOUR, -6,CURRENT_TIMESTAMP(5))
Acest calcul returnează marcajul temporal curent pe baza Zonei montane din SUA. Puteţi crea noua coloană pentru marcaj temporal drept coloană derivată în sursa tabelului logic sau o puteţi mapa direct la baza de date. Diferenţa este locul unde se efectuează calculul, adică Oracle Analytics sau baza de date. Următoarea figură prezintă un calcul mapat direct la baza de date în Generator de expresii - caseta de dialog Expresie.
Atunci când fusul orar prestabilit este setat la UTC, funcţia CURRENT_DATE
nu returnează data corectă pentru anumite ore din zi, în raport cu fusul orar al utilizatorului. De exemplu, dacă este miezul nopţii pe fusul orar UTC, data nu corespunde cu data UTC pentru durata decalajului temporal.
Lansarea calculului marcajului temporal ca dată rezolvă această problemă. De exemplu:
cast(TIMESTAMPADD(SQL_TSI_HOUR, -6,CURRENT_TIMESTAMP) as date)
Următoarea figură prezintă un calcul creat ca o coloană derivată în Generatorul de expresii - caseta de dialog Coloană logică derivată.
Pentru rapoarte unice sau individuale, puteţi crea calcule pentru marcajul temporal la nivel de raport, fie într-o vizualizare de date, fie într-o analiză clasică. Dacă plănuiţi să reutilizaţi calculele, este adesea mai uşor să le definiţi ca pe coloane în modelul semantic (sau fişierul RPD).
Pentru mai multe informaţii despre funcţiile menţionate în acest subiect, consultaţi Funcţii dată şi oră şi Funcţii pentru serii cronologice.