Funktioner för datum och tid

Funktioner för datum och tid används för att manipulera data baserat på DATE och DATETIME.

Funktion Exempel Beskrivning Syntax

CURRENT_Date

CURRENT_DATE

Returnerar aktuellt datum.

Datumet fastställs av det system där Oracle BI körs.

CURRENT_DATE

CURRENT_TIME

CURRENT_TIME(3)

Returnerar aktuell tid med angivet antal precisionssiffror, till exempel: HH:MM:SS,SSS

Om inget argument är angivet returnerar funktionen standardprecisionsvärdet.

CURRENT_TIME(expr)

CURRENT_TIMESTAMP

CURRENT_TIMESTAMP(3)

Returnerar aktuellt datum/tidsstämpel med angivet antal precisionssiffror.

CURRENT_TIMESTAMP(expr)

DAYNAME

DAYNAME(Order_Date)

Returnerar namnet på veckodagen för ett angivet datumuttryck.

DAYNAME(expr)

DAYOFMONTH

DAYOFMONTH(Order_Date)

Returnerar det nummer som motsvarar dagen i månaden för ett angivet datumuttryck.

DAYOFMONTH(expr)

DAYOFWEEK

DAYOFWEEK(Order_Date)

Returnerar ett nummer mellan 1 och 7 som motsvarar dagen i veckan för ett angivet datumuttryck. Till exempel motsvarar 1 alltid söndag, 2 motsvarar måndag osv. till lördag som returnerar 7.

DAYOFWEEK(expr)

DAYOFYEAR

DAYOFYEAR(Order_Date)

Returnerar det nummer (mellan 1 och 366) som motsvarar dagen på året för ett angivet datumuttryck.

DAYOFYEAR(expr)

DAY_OF_QUARTER

DAY_OF_QUARTER(Order_Date)

Returnerar ett nummer (mellan 1 och 92) som motsvarar dagen i kvartalet för det angivna datumuttrycket.

DAY_OF_QUARTER(expr)

HOUR

HOUR(Order_Time)

Returnerar ett nummer (mellan 0 och 23) som motsvarar timdelen för ett angivet tidsuttryck. Till exempel motsvarar 0 klockan 12 på natten och 23 motsvarar klockan 23.00.

HOUR(expr)

MINUTE

MINUTE(Order_Time)

Returnerar ett nummer (mellan 0 och 59) som motsvarar minutdelen för ett angivet tidsuttryck.

MINUTE(expr)

MONTH

MONTH(Order_Time)

Returnerar det nummer (mellan 1 och 12) som motsvarar månaden för ett angivet datumuttryck.

MONTH(expr)

MONTHNAME

MONTHNAME(Order_Time)

Returnerar namnet på månaden för ett angivet datumuttryck.

MONTHNAME(expr)

MONTH_OF_QUARTER

MONTH_OF_QUARTER(Order_Date)

Returnerar det nummer (mellan 1 och 3) som motsvarar månaden i kvartalet för ett angivet datumuttryck.

MONTH_OF_QUARTER(expr)

NOW

NOW()

Returnerar aktuell tidsstämpel. Funktionen NOW motsvarar funktionen CURRENT_TIMESTAMP.

NOW()

QUARTER_OF_YEAR

QUARTER_OF_YEAR(Order_Date)

Returnerar det nummer (mellan 1 och 4) som motsvarar kvartalet på året för ett angivet datumuttryck.

QUARTER_OF_YEAR(expr)

SECOND

SECOND(Order_Time)

Returnerar det nummer (mellan 0 och 59) som motsvarar sekunddelen för ett angivet tidsuttryck.

SECOND(expr)

TIMESTAMPADD

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

Adderar ett angivet antal intervall till en tidsstämpel och returnerar en enda tidsstämpel.

Alternativen för intervall är: 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)

Returnerar det totala antalet givna intervall mellan två tidsstämplar.

Använd samma intervall som TIMESTAMPADD.

TIMESTAMPDIFF(interval, expr, timestamp2)

WEEK_OF_QUARTER

WEEK_OF_QUARTER(Order_Date)

Returnerar ett nummer (mellan 1 och 13) som motsvarar veckan i kvartalet för det angivna datumuttrycket.

WEEK_OF_QUARTER(expr)

WEEK_OF_YEAR

WEEK_OF_YEAR(Order_Date)

Returnerar ett nummer (mellan 1 och 53) som motsvarar veckan på året för det angivna datumuttrycket.

WEEK_OF_YEAR(expr)

YEAR

YEAR(Order_Date)

Returnerar året för det angivna datumuttrycket.

YEAR(expr)

Tips på att använda datumfunktioner

Här följer några tips på hur du får bästa resultat när du använder datumfunktioner i dina arbetsböcker för att beräkna räkenskapsperioder, konvertera strängar till datum, visa datum och tid i en specifik tidszon och beräkna differenser med tiden.

Beräkna räkenskapsår, räkenskapsmånad och räkenskapskvartal:

Ämnesområden har vanligen en tidsdimension så att du kan använda förkonfigurerade perioder för till exempel räkenskapskvartal, räkenskapsmånad och räkenskapsvecka. Om du bara har ett datumfält kan du beräkna dessa perioder själv med hjälp av datumfunktioner.

I det här exemplet beräknas räkenskapskvartal:

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

I det här exemplet beräknas räkenskapsår och räkenskapsmånad:

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

Obs!

  • || sammanfogar värden.
  • cast (xxx(date) as char) extraherar en del av ett datumfält.
  • TIMESTAMPADD lägger till (eller drar ifrån) perioder från ett datum. I det här exemplet används parametervärdet SQL_TSI_MONTH till att lägga till månader.

De ovanstående beräkningarna fungerar bra i tabeller, men när de används i filter kan mellanrummen mellan de returnerade värdena se märkliga ut. I så fall kan du använda en renare, men mer komplex beräkning baserad på dessa exempel:

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

Konvertera en sträng till ett datum:

Oracle Analytics profilerar dina data och ger rekommendationer på berikningar för extrahering och konvertering av datum. Om du behöver konvertera en sträng till ett datum på egen hand ska du följa de här tipsen.
  • I arbetsboksdesignern navigerar du i datarutan till den kolumn du vill konvertera, högerklickar och väljer Konvertera till datum. Konfigurera datumet och klicka sedan på Lägg till steg.

  • I arbetsboksdesignern navigerar du i datarutan till den kolumn du vill konvertera, högerklickar och väljer Redigera. Konfigurera datumet och klicka sedan på Lägg till steg.

    I textrutan som innehåller namnet på kolumnen i blått infogar du To_DateTime( före kolumnnamnet och lägger till det datumformat du vill använda efter kolumnnamnet följt av ). Klicka sedan på Lägg till steg.
    Beskrivning av GUID-ADBD035B-A62A-4DED-8768-553365BAABFE-default.png följer
    .png

    När du använder alternativet Redigera för att skapa funktionen för datumkonvertering kan du även använda Allow_Variable_Digits för att bearbeta kolumnvärden med ensiffriga eller tvåsiffriga tal och Null_On_Error-argument för att ignorera rader som inte matchar mönstret som krävs. Se även REPLACE och CAST för alternativa sätt att bearbeta data som inte matcher det mönster som krävs.

    Ett alternativ till att använda To_DateTime() är att använda CAST() för att ändra ett värdes datatyp. Exempel: CAST(SalesDate AS DATE).

    Du kan även använda alternativet Ersätt. I arbetsboksdesignern navigerar du i datarutan till den kolumn du vill konvertera, högerklickar och väljer Ersätt. Konfigurera den typ av ersättning du vill ha och klicka på Lägg till steg.

Visa ett fält för datum och tid i en specifik tidszon:

Använd funktionen NEW_TIME i databasen ihop med EVALUATE. Exempel:

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

Kontrollera att tidskomponenten finns i datumfältet.

Beräkna differens med tiden:

Vill du visa differensen i antal och procent mellan idag och gårdagen skapar du beräkningar baserat på dessa exempel:
  • Beräkna ett mått fram till gårdagen: filter (Measure using date <= TIMESTAMPADD(SQL_TSI_DAY,-1,CURRENT_DATE))
  • Beräkna skillnaden: Measure - filter (Measure using date <= TIMESTAMPADD(SQL_TSI_DAY,-1,CURRENT_DATE))
  • Beräkna differensen i procent: 1-(filter (Measure using date <= TIMESTAMPADD(SQL_TSI_DAY,-1,CURRENT_DATE))/Measure display as percentage

Obs!

  • I de här exemplen används SQL_TSI_DAY, men du kan även använda WEEK och MONTH för på veckobasis och på månadsbasis.
  • Dessa exempel fungerar med en normal eller naturlig kalender. Om du behöver räkenskapsmånader och räkenskapskvartal använder du datalagervariabler i beräkningarna i stället för TIMESTAMPADD. Ett alternativ är att kombinera det här med tipset för att beräkna räkenskapsår, räkenskapsmånad och räkenskapskvartal.
  • Vissa ämnesområden innehåller förberäknade mått för Prior X (föregående X) som PY (prior year eller föregående år), PQ (prior quarter eller föregående kvartal) som du kan använda för att beräkna differenser med tiden.
  • Du kan även använda TIME SERIES-funktionerna: AGO, PERIODROLLING och TODATE. Se Tidsseriefunktioner.