Datum- en tijdfuncties

Met de functies voor datum en tijd worden gegevens bewerkt op basis van DATE en DATETIME.

Functie Voorbeeld Beschrijving Syntaxis

CURRENT_Date

CURRENT_DATE

Hiermee wordt de huidige datum geretourneerd.

De datum wordt bepaald door het systeem waarop Oracle BI wordt uitgevoerd.

CURRENT_DATE

CURRENT_TIME

CURRENT_TIME(3)

Hiermee wordt de huidige tijd geretourneerd met het opgegeven aantal cijfers achter de komma, bijvoorbeeld UU:MM:SS,SSS.

Als er geen argument wordt opgegeven, retourneert de functie de standaardprecisie.

CURRENT_TIME(expr)

CURRENT_TIMESTAMP

CURRENT_TIMESTAMP(3)

Hiermee wordt de huidige datum/tijdstempel geretourneerd met het opgegeven aantal cijfers achter de komma.

CURRENT_TIMESTAMP(expr)

DAYNAME

DAYNAME(Orderdatum)

Hiermee wordt de naam van de dag van de week geretourneerd voor een opgegeven datumuitdrukking.

DAYNAME(expr)

DAYOFMONTH

DAYOFMONTH(Orderdatum)

Hiermee wordt het getal geretourneerd dat overeenkomt met de dag van de maand voor een opgegeven datumuitdrukking.

DAYOFMONTH(expr)

DAYOFWEEK

DAYOFWEEK(Orderdatum)

Hiermee wordt een getal tussen 1 en 7 geretourneerd dat overeenkomt met de dag van de week voor een opgegeven datumuitdrukking. Hierbij staat de waarde 1 voor zondag, 2 voor maandag, enzovoort, tot en met 7 voor zaterdag.

DAYOFWEEK(expr)

DAYOFYEAR

DAYOFYEAR(Orderdatum)

Hiermee wordt een getal tussen 1 en 366 geretourneerd dat overeenkomt met de dag van het jaar voor een opgegeven datumuitdrukking.

DAYOFYEAR(expr)

DAY_OF_QUARTER

DAY_OF_QUARTER(Orderdatum)

Hiermee wordt een getal tussen 1 en 92 geretourneerd dat overeenkomt met de dag van het kwartaal voor de opgegeven datumuitdrukking.

DAY_OF_QUARTER(expr)

HOUR

HOUR(Order_Time)

Hiermee wordt een getal tussen 0 en 23 geretourneerd dat overeenkomt met het uur voor een opgegeven tijduitdrukking. 0 komt bijvoorbeeld overeen met 00:00 uur en 23 met 23:00 uur.

HOUR(expr)

MINUTE

MINUTE(Order_Time)

Hiermee wordt een getal tussen 0 en 59 geretourneerd dat overeenkomt met de minuut voor een opgegeven tijduitdrukking.

MINUTE(expr)

MONTH

MONTH(Order_Time)

Hiermee wordt een getal tussen 1 en 12 geretourneerd dat overeenkomt met de maand voor een opgegeven datumuitdrukking.

MONTH(expr)

MONTHNAME

MONTHNAME(Order_Time)

Hiermee wordt de naam van de maand geretourneerd voor een opgegeven datumuitdrukking.

MONTHNAME(expr)

MONTH_OF_QUARTER

MONTH_OF_QUARTER(Orderdatum)

Hiermee wordt een getal tussen 1 en 3 geretourneerd dat overeenkomt met de maand in het kwartaal voor een opgegeven datumuitdrukking.

MONTH_OF_QUARTER(expr)

NOW

NOW()

Hiermee wordt de huidige tijdstempel geretourneerd. De functie NOW is het equivalent van de functie CURRENT_TIMESTAMP.

NOW()

QUARTER_OF_YEAR

QUARTER_OF_YEAR(Orderdatum)

Hiermee wordt een getal tussen 1 en 4 geretourneerd dat overeenkomt met het kwartaal van het jaar voor een opgegeven datumuitdrukking.

QUARTER_OF_YEAR(expr)

SECOND

SECOND(Order_Time)

Hiermee wordt een getal tussen 0 en 59 geretourneerd dat overeenkomt met de seconden voor een opgegeven tijduitdrukking.

SECOND(expr)

TIMESTAMPADD

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

Hiermee wordt een opgegeven aantal intervallen toegevoegd aan een tijdstempel en wordt één tijdstempel geretourneerd.

De intervalopties zijn: SQL_TSI_SECOND, SQL_TSI_MINUTE, SQL_TSI_HOUR, SQL_TSI_DAY, SQL_TSI_WEEK, SQL_TSI_MONTH, SQL_TSI_QUARTER en SQL_TSI_YEAR.

TIMESTAMPADD(interval, expr, timestamp)

TIMESTAMPDIFF

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

Hiermee wordt het totale aantal intervallen tussen twee tijdstempels geretourneerd.

Deze functie gebruikt dezelfde intervallen als TIMESTAMPADD.

TIMESTAMPDIFF(interval, expr, timestamp2)

WEEK_OF_QUARTER

WEEK_OF_QUARTER(Orderdatum)

Hiermee wordt een getal tussen 1 en 13 geretourneerd dat overeenkomt met de week van het kwartaal voor de opgegeven datumuitdrukking.

WEEK_OF_QUARTER(expr)

WEEK_OF_YEAR

WEEK_OF_YEAR(Orderdatum)

Hiermee wordt een getal tussen 1 en 53 geretourneerd dat overeenkomt met de week van het jaar voor de opgegeven datumuitdrukking.

WEEK_OF_YEAR(expr)

YEAR

YEAR(Orderdatum)

Hiermee wordt het jaar voor de opgegeven datumuitdrukking geretourneerd.

YEAR(expr)

Tips voor het gebruik van gegevensfuncties

Hier vindt u enkele tips voor het verkrijgen van de beste resultaten bij het gebruik van datumfuncties in uw werkmappen voor het berekenen van boekperioden, het converteren van strings naar datums, het tonen van een datum en tijd in een specifieke tijdzone en het berekenen van verschillen in de loop van de tijd.

Boekjaar, -kwartaal en -maand berekenen:

Onderwerpgebieden hebben doorgaans een tijdsdimensie. U kunt hiervoor de voorgeconfigureerde perioden gebruiken, zoals het boekkwartaal, de boekmaand of de boekweek. Als u alleen een datumveld hebt, kunt u deze perioden zelf berekenen met behulp van datumfuncties.

In dit voorbeeld wordt het boekkwartaal berekend:

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

In dit voorbeeld wordt het boekjaar en de boekmaand berekend:

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

Opmerkingen:

  • || aaneengeschakelde waarden.
  • cast (xxx(date) as char) extraheert een gedeelte van een datumveld.
  • TIMESTAMPADD voegt perioden toe aan (of trekt deze af van) een datum. In dit voorbeeld wordt de parameter SQL_TSI_MONTH gebruikt om maanden toe te voegen.

De bovenstaande berekeningen werken goed in tabellen, maar in filters kan de ruimte tussen de geretourneerde waarden er vreemd uitzien. Gebruik in dat geval een nettere maar complexere berekening op basis van deze voorbeelden:

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

Een string converteren naar een datum:

Oracle Analytics profileert uw gegevens en geeft verrijkingsaanbevelingen voor het extraheren en converteren van datums. Gebruik deze tips als u zelf een string moet converteren naar een datum.
  • Open de werkmapdesigner, ga in het venster 'Gegevens' naar de kolom die u wilt converteren en selecteer Naar datum converteren. Configureer de datum en klik op Stap toevoegen.

  • Open de werkmapdesigner, ga in het venster 'Gegevens' naar de kolom die u wilt converteren, klik met de rechtermuisknop en selecteer Bewerken. Configureer de datum en klik op Stap toevoegen.

    Voeg in het tekstvak dat de naam van uw kolom in het blauw bevat To_DateTime( toe voorafgaand aan de kolomnaam. Voeg vervolgens de datumnotatie toe die u wilt gebruiken na de kolomnaam, gevolgd door ) en klik op Stap toevoegen.
    Beschrijving van GUID-ADBD035B-A62A-4DED-8768-553365BAABFE-default.png volgt hierna
    .png

    Wanneer u de optie 'Bewerken' gebruikt om uw datumconversiefunctie te maken, kunt u ook Allow_Variable_Digits gebruiken om kolomwaarden met één of twee cijfers te verwerken, evenals Null_On_Error-argumenten om rijen uit te sluiten die niet overeenkomen met het vereiste patroon. Zie ook REPLACE en CAST voor alternatieve manieren waarop u gegevens kunt verwerken die niet overeenkomen met het vereiste patroon.

    Als alternatief voor To_DateTime() kunt u CAST() gebruiken om het gegevenstype van een waarde te wijzigen. Bijvoorbeeld: CAST(SalesDate AS DATE).

    Gebruik daarnaast de optie Vervangen. Open de werkmapdesigner, ga in het venster 'Gegevens' naar de kolom die u wilt converteren, klik met de rechtermuisknop en selecteer Vervangen. Configureer het soort vervanging dat u wilt en klik op Stap toevoegen.

Een datum- en tijdveld tonen in een specifieke tijdzone:

Gebruik de functie NEW_TIME in de database in combinatie met EVALUATE. Bijvoorbeeld:

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

Controleer of het datumveld de tijdcomponent bevat.

Verschillen in de loop van de tijd berekenen:

Maak berekeningen op basis van deze voorbeelden om het verschil tussen nu en gisteren te tonen als nummer en als percentage:
  • Bereken een eenheid tot gisteren: filter (Eenheid met datum <= TIMESTAMPADD(SQL_TSI_DAY,-1,CURRENT_DATE))
  • Bereken het verschil: Measure - filter (Measure using date <= TIMESTAMPADD(SQL_TSI_DAY,-1,CURRENT_DATE))
  • Bereken het verschil als percentage: 1-(filter (Eenheid met datum <= TIMESTAMPADD(SQL_TSI_DAY,-1,CURRENT_DATE))/Eenheid tonen als percentage

Opmerkingen:

  • Deze voorbeelden maken gebruik van SQL_TSI_DAY. Als alternatief kunt u WEEK en MONTH gebruiken voor het verschil ten opzichte van een week en een maand geleden.
  • Deze voorbeelden werken met een normale of natuurlijke kalender. Als u boekmaanden en -kwartalen moet berekenen, gebruik dan repositoryvariabelen in uw berekeningen in plaats van TIMESTAMPADD. Als alternatief kunt u dit combineren met de top Boekjaar, -kwartaal en -maand berekenen.
  • Bepaalde onderwerpgebieden bevatten voorberekende 'Vorige X'-eenheden zoals VJ (vorig jaar) en VK (vorig kwartaal), waarmee u verschillen in de loop van de tijd kunt berekenen.
  • Als alternatief kunt u de functies in TIME SERIES gebruiken: AGO, PERIODROLLING en TODATE. Zie voor meer informatie: Tijdreeksfuncties.