Configurarea marcajelor temporale

Î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

În mod prestabilit, ora sistemului pentru Oracle Analytics Cloud se bazează pe ora UTC. Următoarele funcţii returnează valori care utilizează ora sau data UTC:
  • 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ă.

Urmează descrierea GUID-8DB3356D-CD0C-471F-ACA2-9151598FAB51-default.png
.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.

Urmează descrierea GUID-27A25D1D-56A1-4C02-9FC2-106F9BAFBE71-default.jpg
.jpg

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ă.

Urmează descrierea GUID-49CFA011-ED91-477F-AE42-7CEE3D090E34-default.jpg
.jpg

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.