Dato- og klokkeslætsfunktioner

Dato- og klokkeslætsfunktioner manipulerer data på basis af DATE og DATETIME.

Funktion Eksempel Beskrivelse Syntaks

CURRENT_Date

CURRENT_DATE

Returnerer den aktuelle dato.

Datoen fastsættes af det system, hvor Oracle BI kører.

CURRENT_DATE

CURRENT_TIME

CURRENT_TIME(3)

Returnerer det aktuelle klokkeslæt med en præcision på det angivne antal cifre, for eksempel: TT:MM:SS.SSS

Hvis der ikke angives et argument, returnerer funktionen standardpræcisionen.

CURRENT_TIME(expr)

CURRENT_TIMESTAMP

CURRENT_TIMESTAMP(3)

Returnerer den aktuelle dato/det aktuelle tidsstempel med en præcision på det angivne antal cifre.

CURRENT_TIMESTAMP(expr)

DAYNAME

DAYNAME(Order_Date)

Returnerer navnet på dagen i ugen for et angivet datoudtryk.

DAYNAME(expr)

DAYOFMONTH

DAYOFMONTH(Order_Date)

Returnerer det tal, der svarer til dagen i måneden for et angivet datoudtryk.

DAYOFMONTH(expr)

DAYOFWEEK

DAYOFWEEK(Order_Date)

Returnerer et tal mellem 1 og 7, som svarer til dagen i ugen for et angivet datoudtryk. 1 svarer til søndag, 2 svarer til mandag og så videre indtil lørdag, som returnerer 7.

DAYOFWEEK(expr)

DAYOFYEAR

DAYOFYEAR(Order_Date)

Returnerer tallet (mellem 1 og 366), der svarer til dagen i året for et angivet datoudtryk.

DAYOFYEAR(expr)

DAY_OF_QUARTER

DAY_OF_QUARTER(Order_Date)

Returnerer et tal (mellem 1 og 92), der svarer til dagen i kvartalet for det angivne datoudtryk.

DAY_OF_QUARTER(expr)

HOUR

HOUR(Order_Time)

Returnerer et tal (mellem 0 og 23), der svarer til timetallet for et angivet datoudtryk. 0 svarer for eksempel til kl. 12, og 23 svarer til kl. 11 om aftenen.

HOUR(expr)

MINUTE

MINUTE(Order_Time)

Returnerer et tal (mellem 0 og 59), der svarer til minuttallet for et angivet datoudtryk.

MINUTE(expr)

MONTH

MONTH(Order_Time)

Returnerer tallet (mellem 1 og 12), der svarer til måneden for et angivet datoudtryk.

MONTH(expr)

MONTHNAME

MONTHNAME(Order_Time)

Returnerer navnet på måneden for et angivet datoudtryk.

MONTHNAME(expr)

MONTH_OF_QUARTER

MONTH_OF_QUARTER(Order_Date)

Returnerer tallet (mellem 1 og 3), der svarer til måneden i kvartalet for et angivet datoudtryk.

MONTH_OF_QUARTER(expr)

NOW

NOW()

Returnerer det aktuelle tidsstempel. Funktionen NOW svarer til funktionen CURRENT_TIMESTAMP.

NOW()

QUARTER_OF_YEAR

QUARTER_OF_YEAR(Order_Date)

Returnerer tallet (mellem 1 og 4), der svarer til kvartalet i året for et angivet datoudtryk.

QUARTER_OF_YEAR(expr)

SECOND

SECOND(Order_Time)

Returnerer tallet (mellem 0 og 59), der svarer til sekundtallet for et angivet klokkeslætsudtryk.

SECOND(expr)

TIMESTAMPADD

TIMESTAMPADD(SQL_TSI_MONTH, 12,Time."Ordredato")

Føjer et angivet antal intervaller til et tidsstempel og returnerer et enkelt tidsstempel.

De mulige intervaller er: SQL_TSI_SECOND, SQL_TSI_MINUTE, SQL_TSI_HOUR, SQL_TSI_DAY, SQL_TSI_WEEK, SQL_TSI_MONTH, SQL_TSI_QUARTER, SQL_TSI_YEAR

TIMESTAMPADD(interval, expr, timestamp)

TIMESTAMPDIFF

TIMESTAMPDIFF(SQL_TSI_MONTH, Time."Ordredato",CURRENT_DATE)

Returnerer det samlede antal angivne intervaller mellem to tidsstempler.

Brug samme intervaller som til TIMESTAMPADD.

TIMESTAMPDIFF(interval, expr, timestamp2)

WEEK_OF_QUARTER

WEEK_OF_QUARTER(Order_Date)

Returnerer et tal (mellem 1 og 13), der svarer til ugen i kvartalet for det angivne datoudtryk.

WEEK_OF_QUARTER(expr)

WEEK_OF_YEAR

WEEK_OF_YEAR(Order_Date)

Returnerer et tal (mellem 1 og 53), der svarer til ugen i året for det angivne datoudtryk.

WEEK_OF_YEAR(expr)

YEAR

YEAR(Order_Date)

Returnerer året for det angivne datoudtryk.

YEAR(expr)

Tip til brug af datofunktioner

Her er nogle tip til, hvordan du opnår de bedste resultater, når du bruger datofunktioner i dine projektmapper til at beregne regnskabsperioder, konvertere strenge til datoer, vise en dato og et klokkeslæt i en specifik tidszone og beregne forskelle over tid.

Beregn regnskabsår, -kvartal og -måned:

Emneområder har typisk en tidsdimension, så du kan bruge de forudkonfigurerede perioder som regnskabskvartal, regnskabsmåned og regnskabsuge. Hvis du kun har et datofelt, kan du selv beregne disse perioder ved hjælp af datofunktioner.

Dette eksempel beregner regnskabskvartal:

'FY'||cast(YEAR(TIMESTAMPADD(SQL_TSI_MONTH, 7,<date field>)) as char)||'Q'||cast(QUARTER(TIMESTAMPADD(SQL_TSI_MONTH, 7,<same date field>)) as char)

Dette eksempel beregner regnskabsår:

'FY'||cast(YEAR(TIMESTAMPADD(SQL_TSI_MONTH, 7,<date field>)) as char)||cast(MONTHNAME(<same date field>) as char)

Bemærkninger:

  • || sammenkæder værdier.
  • cast (xxx(date) as char) udtrækker en del af et datafelt.
  • TIMESTAMPADD lægger perioder til en dato (eller trækker perioder fra en dato). Dette eksempel bruger parameterværdien SQL_TSI_MONTH til at lægge måneder til.

Beregningerne ovenfor fungerer godt i tabeller, men når de bruges i filtre, kan afstanden mellem returnerede værdier se mærkelig ud. I dette tilfælde kan du bruge en renere, men mere kompleks beregning, der er baseret på disse eksempler:

'FY'||evaluate ('to_char(%1,%2)'as char,(EVALUATE('add_months(%1,%2)' as date,<date field>,7)),'YY')||'-Q'||evaluate ('to_char(%1,%2)'as char,(EVALUATE('add_months(%1,%2)' as date,<same date field>,7)),'Q')
'FY'||evaluate ('to_char(%1,%2)'as char,(EVALUATE('add_months(%1,%2)' as date,<date field>,7)),'YY')||'-'||evaluate ('to_char(%1,%2)'as char,<same date field>,'MON')

Konverter en streng til en dato:

Oracle Analytics profilerer dine data og giver anbefalinger til forbedringer af udtrækning og konvertering af datoer. Hvis du selv skal konvertere en streng til en dato, kan du bruge disse tip.
  • Naviger til den kolonne, som du vil konvertere, i dataruden i projektmappedesigneren. Højreklik derefter, og vælg Konverter til dato. Konfigurer datoen, og klik derefter på Tilføj trin.

  • Naviger til den kolonne, som du vil konvertere, i dataruden i projektmappedesigneren. Højreklik derefter, og vælg Rediger. Konfigurer datoen, og klik derefter på Tilføj trin.

    Indsæt To_DateTime( før kolonnenavnet i den tekstboks, der indeholder navnet på din kolonne med blåt, og tilføj derefter det datoformat, som du vil bruge efter kolonnenavnet, efterfulgt af ). Klik derefter på Tilføj trin.
    Beskrivelse af GUID-ADBD035B-A62A-4DED-8768-553365BAABFE-default.png følger
    .png

    Når du bruger valget Rediger til at oprette funktionen til datokonvertering, kan du også bruge Allow_Variable_Digits til at behandle kolonneværdier med étcifrede eller tocifrede tal og Null_On_Error-argumenter til at kassere rækker, der ikke matcher det påkrævede mønster. Se også REPLACE og CAST for at få alternative måder at behandle datoer på, der ikke matcher det påkrævede mønster.

    Som et alternativ til To_DateTime() kan du bruge CAST() til at ændre en værdis datatype. For eksempel CAST(SalesDate AS DATE).

    Brug derudover valget Erstat. Naviger til den kolonne, som du vil konvertere, i dataruden i projektmappedesigneren. Højreklik derefter, og vælg Erstat. Konfigurer den ønskede erstatningstype, og klik derefter på Tilføj trin.

Vis et dato- og klokkeslætsfelt i en specifik tidszone:

Brug funktionen NEW_TIME i databasen sammen med EVALUATE. Eksempel:

evaluate ('new_time(%1,%2,%3)' as char, "DV - Pipeline and Forecast"."Opportunity"."Last Updated Date",'GMT','AST')

Sørg for, at datofeltet omfatter klokkeslætkomponenten.

Beregn forskel over tid:

Hvis du vil vise forskellen i tal og procentdel mellem nu og i går, skal du oprette beregninger på basis af disse eksempler:
  • Beregn en måling indtil i går: filter (Measure using date <= TIMESTAMPADD(SQL_TSI_DAY,-1,CURRENT_DATE))
  • Beregn forskellen: Measure - filter (Measure using date <= TIMESTAMPADD(SQL_TSI_DAY,-1,CURRENT_DATE))
  • Beregn forskellen i procent: 1-(filter (Measure using date <= TIMESTAMPADD(SQL_TSI_DAY,-1,CURRENT_DATE))/Measure display as percentage

Bemærkninger:

  • Disse eksempler bruger SQL_TSI_DAY, men du kan også bruge WEEK og MONTH, uge for uge og måned for måned.
  • Disse eksempler fungerer sammen med en normal eller naturlig kalender. Hvis du skal bruge regnskabsmåneder og -kvartaler, kan du bruge informationsbasevariabler i dine beregninger i stedet for TIMESTAMPADD. Alternativt kan du kombinere dette med tippet Beregn regnskabsår, -kvartal og -måned.
  • Nogle emneområder omfatter forudberegnede forrige X-målinger som PY (Prior Year - forrige år), PQ (Prior Quarter - forrige kvartal), som du kan bruge til at beregne forskelle over tid.
  • Du kan også bruge TIME SERIES-funktionerne: AGO, PERIODROLLING og TODATE. Se Tidsseriefunktioner.