I Oracle Analytics angiver administratorer den standardtidszone, der bruges til dato- og klokkeslætsberegninger i Systemindstillinger. Denne globale indstilling gælder for alle beregninger. Dette emne forklarer, hvordan du bruger funktionen TIMESTAMPADD
til at angive en anden tidszone, hvis du vil bruge et andet tidsstempel i en bestemt beregning.
Angive standardtidszone for beregninger i Systemindstillinger
CURRENT_DATE
CURRENT_TIME()
CURRENT_TIMESTAMP()
NOW()
Som administrator kan du ændre det tidsstempel, der bruges i beregninger, ved hjælp af valget Standardtidszone for datoberegninger i konsollen under Avancerede systemindstillinger. Vælg den ønskede tidszone på rullelisten, og anvend ændringerne, så den nye værdi kan træde i kraft.
.png
Se Systemindstillinger - Formateringsvalg for at få flere oplysninger om indstillinger af global tidszone.
Bruge en specifik tidszone for tidsstempler i beregninger
Hvis du vil generere et andet tidsstempel end systemindstillingen i dine beregninger, skal du bruge funktionen TIMESTAMPADD
sammen med CURRENT_TIMESTAMP()
eller NOW()
. Basisberegningen TIMESTAMPADD
er:
TIMESTAMPADD(SQL_TSI_<<interval>>, <<integer expression>>, <<timestamp expression>>)
Til beregninger af tidsstempel er HOUR
intervallet, og tidsforskydningen er forskellen i timer mellem UTC og den tidszone, der skal rapporteres for. Eksempel:
TIMESTAMPADD(SQL_TSI_HOUR, -6,CURRENT_TIMESTAMP(5))
Denne beregning returnerer det aktuelle tidsstempel i USA Mountain Time. Du kan oprette den nye tidsstempelkolonne som en afledt kolonne i den logiske tabelkilde eller mappe den direkte til databasen. Forskellen går på, hvor beregningen skal udføres, dvs. Oracle Analytics eller databasen. Følgende figur viser en beregning, der er mappet direkte til databasen i dialogboksen Udtryks-builder - Udtryk.
Hvis standardtidszonen er angivet til UTC, returnerer funktionen CURRENT_DATE
ikke den korrekte dato for visse tidspunkter på dagen i forhold til en brugers tidszone. Når det for eksempel er midnat i UTC, matcher den lokale dato ikke UTC-datoen i tidsforskydningens varighed.
Hvis beregningen af tidsstempel defineres som en dato, er problemet løst. Eksempel:
cast(TIMESTAMPADD(SQL_TSI_HOUR, -6,CURRENT_TIMESTAMP) as date)
Følgende figur viser en beregning, der er oprettet som en afledt kolonne i dialogboksen Afledt logisk kolonne i Udtryks-builder.
Til engangsrapporter eller enkeltstående rapporter kan du oprette beregninger af tidsstempel på rapportniveau i enten en datavisualisering eller en klassisk analyse. Hvis du planlægger at genbruge beregningerne, er det ofte nemmere at definere dem som kolonner i den semantiske model (eller RPD-fil).
Se Dato- og klokkeslætsfunktioner og Tidsseriefunktioner. for at få flere oplysninger om de funktioner, der er nævnt i dette emne