Dato- og klokkeslettfunksjoner

Dato- og klokkeslettfunksjoner brukes for å manipulere data basert på DATE og DATETIME.

Funksjon Eksempel Beskrivelse Syntaks

CURRENT_Date

CURRENT_DATE

Returnerer dagens dato.

Datoen bestemmes av systemet som Oracle BI kjører på.

CURRENT_DATE

CURRENT_TIME

CURRENT_TIME(3)

Returnerer det gjeldende klokkeslettet med en presisjon på det angitte antallet sifre, for eksempel TT:MM:SS.SSS

Hvis ingen argumenter er angitt, returnerer funksjonen standardpresisjonen.

CURRENT_TIME(expr)

CURRENT_TIMESTAMP

CURRENT_TIMESTAMP(3)

Returnerer gjeldende dato/tidsstempel med en presisjon på det angitte antallet sifre.

CURRENT_TIMESTAMP(expr)

DAYNAME

DAYNAME(Order_Date)

Returnerer navnet på dagen i uken for et angitt datouttrykk,

DAYNAME(expr)

DAYOFMONTH

DAYOFMONTH(Order_Date)

Returnerer tallet som tilsvarer dagen i måneden for et angitt datouttrykk.

DAYOFMONTH(expr)

DAYOFWEEK

DAYOFWEEK(Order_Date)

Returnerer et tall mellom 1 og 7 som tilsvarer dagen i uken for et angitt datouttrykk. 1 tilsvarer for eksempel alltid søndag, 2 tilsvarer mandag og så videre til og med lørdag, som returnerer 7.

DAYOFWEEK(expr)

DAYOFYEAR

DAYOFYEAR(Order_Date)

Returnerer tallet (mellom 1 og 366) som tilsvarer dagen i året for et angitt datouttrykk.

DAYOFYEAR(expr)

DAY_OF_QUARTER

DAY_OF_QUARTER(Order_Date)

Returnerer et tall (mellom 1 og 92) som tilsvarer dagen i kvartalet for det angitte datouttrykket.

DAY_OF_QUARTER(expr)

HOUR

HOUR(Order_Time)

Returnerer et tall (mellom 0 og 23) som tilsvarer timen for et angitt klokkeslettuttrykk. 0 tilsvarer for eksempel 00.00, og 23 tilsvarer 23.00.

HOUR(expr)

MINUTE

MINUTE(Order_Time)

Returnerer et tall (mellom 0 og 59) som tilsvarer minuttet for et angitt klokkeslettuttrykk.

MINUTE(expr)

MONTH

MONTH(Order_Time)

Returnerer tallet (mellom 1 og 12) som tilsvarer måneden for et angitt datouttrykk.

MONTH(expr)

MONTHNAME

MONTHNAME(Order_Time)

Returnerer navnet på måneden for et angitt datouttrykk.

MONTHNAME(expr)

MONTH_OF_QUARTER

MONTH_OF_QUARTER(Order_Date)

Returnerer tallet (mellom 1 og 3) som tilsvarer måneden i kvartalet for et angitt datouttrykk.

MONTH_OF_QUARTER(expr)

NOW

NOW()

Returnerer det gjeldende tidsstempelet. Funksjonen NOW tilsvarer funksjonen CURRENT_TIMESTAMP.

NOW()

QUARTER_OF_YEAR

QUARTER_OF_YEAR(Order_Date)

Returnerer tallet (mellom 1 og 4) som tilsvarer kvartalet i året for et angitt datouttrykk.

QUARTER_OF_YEAR(expr)

SECOND

SECOND(Order_Time)

Returnerer tallet (mellom 0 og 59) som tilsvarer sekundene for et angitt klokkeslettuttrykk.

SECOND(expr)

TIMESTAMPADD

TIMESTAMPADD(SQL_TSI_MONTH, 12,Time."Order Date")

Legger til et angitt antall intervaller i et tidsstempel, og returnerer et enkelt tidsstempel.

Intervallvalgene 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."Order Date",CURRENT_DATE)

Returnerer det totale antallet angitte intervaller mellom to tidsstempler.

Bruk samme intervaller som TIMESTAMPADD.

TIMESTAMPDIFF(interval, expr, timestamp2)

WEEK_OF_QUARTER

WEEK_OF_QUARTER(Order_Date)

Returnerer et tall (mellom 1 og 13) som tilsvarer uken i kvartalet for et angitt datouttrykk.

WEEK_OF_QUARTER(expr)

WEEK_OF_YEAR

WEEK_OF_YEAR(Order_Date)

Returnerer et tall (mellom 1 og 53) som tilsvarer uken i året for et angitt datouttrykk.

WEEK_OF_YEAR(expr)

YEAR

YEAR(Order_Date)

Returnerer året for et angitt datouttrykk.

YEAR(expr)

Tips om bruk av datofunksjoner

Her er noen tips om hvordan du oppnår best mulig resultater når du bruker datofunksjoner i arbeidsbøkene til å beregne regnskapsperioder, konvertere strenger til datoer, vise en dato og et klokkeslett i en bestemt tidssone samt beregne forskjeller over tid.

Beregne regnskapsår, -kvartal og -måned:

Emneområder har vanligvis en tidsdimensjon, slik at du kan bruke de forhåndskonfigurerte periodene, for eksempel regnskapskvartal, regnskapsmåned og regnskapsuke. Hvis du bare har et datofelt, kan du beregne disse periodene selv ved hjelp av datofunksjoner.

Dette eksemplet beregner regnskapskvartal:

'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 eksemplet beregner regnskapsår og -måned:

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

Merknader:

  • || sammenkjeder verdier.
  • cast (xxx(date) as char) trekker ut en del av et datofelt.
  • TIMESTAMPADD legger til (eller trekker fra) perioder for en dato. Dette eksemplet bruker parameterverdien SQL_TSI_MONTH til å legge til måneder.

Beregningen ovenfor fungerer godt i tabeller, men når den brukes i filtre, kan avstanden mellom returnerte verdier se merkelig ut. I så fall kan du bruke en ryddigere, men mer kompleks beregning basert på disse eksemplene:

'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')

Konvertere en streng til en dato:

Oracle Analytics profilerer dataene dine og gir suppleringsanbefalinger for uttrekk og konvertering av datoer. Hvis du må konvertere en streng til en dato selv, kan du bruke disse tipsene.
  • Gå til kolonnen du vil konvertere, i dataruten i arbeidsbokutformeren, høyreklikk, og velg deretter Konverter til dato. Konfigurer datoen, og klikk deretter på Legg til trinn.

  • Gå til kolonnen du vil konvertere, i dataruten i arbeidsbokutformeren, høyreklikk, og velg deretter Rediger. Konfigurer datoen, og klikk deretter på Legg til trinn.

    I tekstboksen der navnet på kolonnen din står oppført med blått, setter du inn To_DateTime( før kolonnenavnet. Deretter legger du til datoformatet du vil bruke, etter kolonnenavnet, etterfulgt av ). Klikk deretter på Legg til trinn.
    Beskrivelse av GUID-ADBD035B-A62A-4DED-8768-553365BAABFE-default.png følger
    .png

    Når du bruker valget Rediger til å opprette funksjonen for datokonvertering, kan du også bruke Allow_Variable_Digits til å behandle kolonneverdier med tall som består av ett eller to sifre, og argumenter for Null_On_Error til å forkaste rader som ikke samsvarer med det nødvendige mønsteret. Se også REPLACE og CAST for alternative måter å behandle data som ikke samsvarer med det nødvendige mønsteret, på.

    I stedet for å bruke To_DateTime() kan du bruke CAST() til å endre datatypen for en verdi. Eksempel: CAST(SalesDate AS DATE).

    Bruk i tillegg valget Erstatt. Gå til kolonnen du vil konvertere, i dataruten i arbeidsbokutformeren, høyreklikk, og velg deretter Erstatt. Konfigurer erstatningstypen du vil bruke, og klikk deretter på Legg til trinn.

Vise et felt for dato og klokkeslett i en bestemt tidssone:

Bruk funksjonen 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')

Kontroller at datofeltet inneholder tidskomponenten.

Beregne forskjeller over tid:

Hvis du vil vise forskjellen i tall og prosent mellom nå og gårsdagen, oppretter du beregninger basert på disse eksemplene:
  • Beregn en måling til og med i går: filter (Measure using date <= TIMESTAMPADD(SQL_TSI_DAY,-1,CURRENT_DATE))
  • Beregn forskjellen: Measure - filter (Measure using date <= TIMESTAMPADD(SQL_TSI_DAY,-1,CURRENT_DATE))
  • Beregn forskjellen i prosent: 1-(filter (Measure using date <= TIMESTAMPADD(SQL_TSI_DAY,-1,CURRENT_DATE))/Measure display as percentage

Merknader:

  • Disse eksemplene bruker SQL_TSI_DAY. Du kan imidlertid velge å bruke WEEK og MONTH uke for uke og måned for måned.
  • Disse eksemplene fungerer med en vanlig eller naturlig kalender. Hvis du trenger regnskapsmåneder og -kvartaler, bruker du registervariabler i beregningen i stedet for TIMESTAMPADD. Du kan også kombinere dette med tipset under Beregne regnskapsår, -kvartal og -måned.
  • Enkelte emneområder inneholder forhåndsberegnede Prior X-målinger, for eksempel PY (forrige år) og PQ (forrige kvartal), som du kan bruke til å beregne forskjeller over tid.
  • Du kan også bruke TIME SERIES-funksjonene: AGO, PERIODROLLING og TODATE. Se Tidsseriefunksjoner.