Funkcie dátumu a času

Funkcie dátumu a času manipulujú s dátami na základe funkcií DATE a DATETIME.

Funkcia Príklad Popis Syntax

CURRENT_Date

CURRENT_DATE

Vráti aktuálny dátum.

Dátum je určený systémom, v ktorom je spustená platforma Oracle BI.

CURRENT_DATE

CURRENT_TIME

CURRENT_TIME(3)

Vráti aktuálny čas s presnosťou na zadaný počet číslic, napríklad: HH:MM:SS.SSS.

Ak nie je zadaný žiadny argument, funkcia vráti predvolenú presnosť.

CURRENT_TIME(expr)

CURRENT_TIMESTAMP

CURRENT_TIMESTAMP(3)

Vráti aktuálny dátum/časovú značku s presnosťou na zadaný počet číslic.

CURRENT_TIMESTAMP(expr)

DAYNAME

DAYNAME(Order_Date)

Vráti názov dňa v týždni pre zadaný výraz dátumu.

DAYNAME(expr)

DAYOFMONTH

DAYOFMONTH(Order_Date)

Vráti číslo, ktoré zodpovedá dňu v mesiaci pre zadaný výraz dátumu.

DAYOFMONTH(expr)

DAYOFWEEK

DAYOFWEEK(Order_Date)

Vráti číslo od 1 do 7, ktoré zodpovedá dňu v týždni pre zadaný výraz dátumu. Napríklad číslo 1 sa vždy rovná nedeli, číslo 2 pondelku a tak ďalej až po sobotu, ktorá vráti číslo 7.

DAYOFWEEK(expr)

DAYOFYEAR

DAYOFYEAR(Order_Date)

Vráti číslo (od 1 do 366), ktoré zodpovedá dňu v roku pre zadaný výraz dátumu.

DAYOFYEAR(expr)

DAY_OF_QUARTER

DAY_OF_QUARTER(Order_Date)

Vráti číslo (od 1 do 92), ktoré zodpovedá dňu štvrťroka pre zadaný výraz dátumu.

DAY_OF_QUARTER(expr)

HOUR

HOUR(Order_Time)

Vráti číslo (od 0 do 23), ktoré zodpovedá hodine pre zadaný výraz času. Číslo 0 napríklad zodpovedá času 12:00 a číslo 23 času 23:00.

HOUR(expr)

MINUTE

MINUTE(Order_Time)

Vráti číslo (od 0 do 59), ktoré zodpovedá minúte pre zadaný výraz času.

MINUTE(expr)

MONTH

MONTH(Order_Time)

Vráti číslo (od 1 do 12), ktoré zodpovedá mesiacu pre zadaný výraz dátumu.

MONTH(expr)

MONTHNAME

MONTHNAME(Order_Time)

Vráti názov mesiaca pre zadaný výraz dátumu.

MONTHNAME(expr)

MONTH_OF_QUARTER

MONTH_OF_QUARTER(Order_Date)

Vráti číslo (od 1 do 3), ktoré zodpovedá mesiacu štvrťroka pre zadaný výraz dátumu.

MONTH_OF_QUARTER(expr)

NOW

NOW()

Vráti aktuálnu časovú značku. Funkcia NOW je rovnaká ako funkcia CURRENT_TIMESTAMP.

NOW()

QUARTER_OF_YEAR

QUARTER_OF_YEAR(Order_Date)

Vráti číslo (od 1 do 4), ktoré zodpovedá štvrťroku v roku pre zadaný výraz dátumu.

QUARTER_OF_YEAR(expr)

SECOND

SECOND(Order_Time)

Vráti číslo (od 0 do 59), ktoré zodpovedá sekundám pre zadaný výraz času.

SECOND(expr)

TIMESTAMPADD

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

Pripočíta zadaný počet intervalov k časovej značke a vráti jednu časovú značku.

Voľby intervalov sú: 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)

Vráti celkový počet zadaných intervalov medzi dvoma časovými značkami.

Používa rovnaké intervaly ako funkcia TIMESTAMPADD.

TIMESTAMPDIFF(interval, expr, timestamp2)

WEEK_OF_QUARTER

WEEK_OF_QUARTER(Order_Date)

Vráti číslo (od 1 do 13), ktoré zodpovedá týždňu v štvrťroku pre zadaný výraz dátumu.

WEEK_OF_QUARTER(expr)

WEEK_OF_YEAR

WEEK_OF_YEAR(Order_Date)

Vráti číslo (od 1 do 53), ktoré zodpovedá týždňu v roku pre zadaný výraz dátumu.

WEEK_OF_YEAR(expr)

YEAR

YEAR(Order_Date)

Vráti rok pre zadaný výraz dátumu.

YEAR(expr)

Tipy na používanie funkcií dátumu

Tu je niekoľko tipov, ktoré vám pomôžu dosiahnuť najlepšie výsledky, keď v zošitoch používate funkcie dátumu na výpočet fiškálnych období, konverziu reťazcov na dátumy, zobrazenie dátumu a času v konkrétnom časovo pásme a na výpočet rozdielov za časové obdobie.

Výpočet fiškálneho roka, štvrťroka a mesiaca:

Tematické oblasti majú zvyčajne dimenziu času, takže môžete používať predkonfigurované obdobia, ako je fiškálny štvrťrok, fiškálny mesiac a fiškálny týždeň. Ak máte iba dátumové pole, tieto obdobia si môžete sami vypočítať pomocou funkcií dátumu.

V tomto príklade sa vypočíta fiškálny štvrťrok:

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

V tomto príklade sa vypočíta fiškálny rok a mesiac:

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

Poznámky:

  • || zreťazí hodnoty.
  • cast (xxx(date) as char) extrahuje časť dátumového poľa.
  • TIMESTAMPADD pripočíta (alebo odpočíta) obdobia od dátumu. V tomto príklade sa používa hodnota parametra SQL_TSI_MONTH na pripočítanie mesiacov.

Výpočty vyššie fungujú dobre v tabuľkách, ale keď sa používajú vo filtroch, medzery medzi vrátenými hodnotami by mohli vyzerať zvláštne. V tomto prípade použite čistejší, ale zložitejší výpočet na základe týchto príkladov:

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

Konverzia reťazca na dátum:

Oracle Analytics profiluje dáta a poskytuje odporúčania na obohatenie pre extrakciu a konverziu dátumov. Ak potrebujete konvertovať reťazec na dátum sami, môžete použiť nasledujúce tipy.
  • V návrhárovi zošita prejdite v podokne Dáta na stĺpec, ktorý chcete konvertovať, kliknite pravým tlačidlom myši a vyberte položku Konvertovať na dátum. Nakonfigurujte dátum a potom kliknite na položku Pridať krok.

  • V návrhárovi zošita prejdite v podokne Dáta na stĺpec, ktorý chcete konvertovať, kliknite pravým tlačidlom myši a vyberte položku Upraviť. Nakonfigurujte dátum a potom kliknite na položku Pridať krok.

    Do textového poľa, ktoré obsahuje názov vášho stĺpca v modrej farbe, vložte text To_DateTime( pred názov stĺpca, pridajte formát dátumu, ktorý chcete použiť za názvom stĺpca, za tým zadajte ) a kliknite na položku Pridať krok.
    Popis GUID-ADBD035B-A62A-4DED-8768-553365BAABFE-default.png je uvedený nižšie
    .png

    Keď na vytvorenie funkcie konverzie dátumu použijete voľbu Upraviť, môžete použiť aj argument Allow_Variable_Digits na spracovanie hodnôt stĺpca s jednocifernými alebo dvojcifernými číslami a argument Null_On_Error na vyradenie riadkov, ktoré nevyhovujú požadovanému vzoru. Pozrite si aj voľby REPLACE a CAST ako alternatívne spôsoby spracovania dát, ktoré sa nezhodujú s požadovaným vzorom.

    Ako alternatívu použitia To_DateTime() použite funkciu CAST() na zmenu dátového typu hodnoty. Napríklad CAST(SalesDate AS DATE).

    Okrem toho môžete použiť voľbu Nahradiť. V návrhárovi zošita prejdite v podokne Dáta na stĺpec, ktorý chcete konvertovať, kliknite pravým tlačidlom myši a vyberte položku Nahradiť. Nakonfigurujte požadovaný typ nahradenia a potom kliknite na položku Pridať krok.

Zobrazenie poľa dátumu a času v konkrétnom časovom pásme:

Použite funkciu NEW_TIME v databáze spolu s funkciou EVALUATE. Príklad:

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

Dátumové pole musí obsahovať komponent času.

Výpočet rozdielu za časové obdobie:

Ak chcete zobraziť číselný a percentuálny rozdiel medzi aktuálnou a včerajšou hodnotou, vytvorte výpočty podľa týchto príkladov:
  • Výpočet miery do včerajšieho dňa: filter (Measure using date <= TIMESTAMPADD(SQL_TSI_DAY,-1,CURRENT_DATE))
  • Výpočet rozdielu: Measure - filter (Measure using date <= TIMESTAMPADD(SQL_TSI_DAY,-1,CURRENT_DATE))
  • Výpočet percentuálneho rozdielu: 1-(filter (Measure using date <= TIMESTAMPADD(SQL_TSI_DAY,-1,CURRENT_DATE))/Measure display as percentage

Poznámky:

  • Tieto príklady používajú SQL_TSI_DAY, ale ako alternatívu môžete použiť WEEK a MONTH pre medzitýždenné alebo medzimesačné porovnanie.
  • Tieto príklady fungujú s normálnym alebo prirodzeným kalendárom. Ak potrebujete fiškálne mesiace a štvrťroky, vo výpočtoch používajte premenné depozitára namiesto TIMESTAMPADD. Ako alternatívu to môžete skombinovať s tipom v časti Výpočet fiškálneho roka, štvrťroka a mesiaca.
  • Niektoré tematické oblasti zahŕňajú vopred vypočítané miery Pred X, napríklad PY (pred rokom), PQ (pred štvrťrokom), ktoré môžete použiť na výpočet rozdielov za obdobie.
  • Ako alternatívu môžete použiť funkcie TIME SERIES: AGO, PERIODROLLING a TODATE. Pozrite si časť Funkcie časovej série.