Funkcie dátumu a času manipulujú s dátami na základe funkcií DATE
a DATETIME
.
Funkcia | Príklad | Popis | Syntax |
---|---|---|---|
CURRENT_Date |
|
Vráti aktuálny dátum. Dátum je určený systémom, v ktorom je spustená platforma Oracle BI. |
|
CURRENT_TIME |
|
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_TIMESTAMP |
|
Vráti aktuálny dátum/časovú značku s presnosťou na zadaný počet číslic. |
|
DAYNAME |
|
Vráti názov dňa v týždni pre zadaný výraz dátumu. |
|
DAYOFMONTH |
|
Vráti číslo, ktoré zodpovedá dňu v mesiaci pre zadaný výraz dátumu. |
|
DAYOFWEEK |
|
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. |
|
DAYOFYEAR |
|
Vráti číslo (od 1 do 366), ktoré zodpovedá dňu v roku pre zadaný výraz dátumu. |
|
DAY_OF_QUARTER |
|
Vráti číslo (od 1 do 92), ktoré zodpovedá dňu štvrťroka pre zadaný výraz dátumu. |
|
HOUR |
|
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. |
|
MINUTE |
|
Vráti číslo (od 0 do 59), ktoré zodpovedá minúte pre zadaný výraz času. |
|
MONTH |
|
Vráti číslo (od 1 do 12), ktoré zodpovedá mesiacu pre zadaný výraz dátumu. |
|
MONTHNAME |
|
Vráti názov mesiaca pre zadaný výraz dátumu. |
|
MONTH_OF_QUARTER |
|
Vráti číslo (od 1 do 3), ktoré zodpovedá mesiacu štvrťroka pre zadaný výraz dátumu. |
|
NOW |
|
Vráti aktuálnu časovú značku. Funkcia |
|
QUARTER_OF_YEAR |
|
Vráti číslo (od 1 do 4), ktoré zodpovedá štvrťroku v roku pre zadaný výraz dátumu. |
|
SECOND |
|
Vráti číslo (od 0 do 59), ktoré zodpovedá sekundám pre zadaný výraz času. |
|
TIMESTAMPADD |
|
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 |
|
TIMESTAMPDIFF |
|
Vráti celkový počet zadaných intervalov medzi dvoma časovými značkami. Používa rovnaké intervaly ako funkcia TIMESTAMPADD. |
|
WEEK_OF_QUARTER |
|
Vráti číslo (od 1 do 13), ktoré zodpovedá týždňu v štvrťroku pre zadaný výraz dátumu. |
|
WEEK_OF_YEAR |
|
Vráti číslo (od 1 do 53), ktoré zodpovedá týždňu v roku pre zadaný výraz dátumu. |
|
YEAR |
|
Vráti rok pre zadaný výraz 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:
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.
.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:
filter (Measure using date <= TIMESTAMPADD(SQL_TSI_DAY,-1,CURRENT_DATE))
Measure - filter (Measure using date <= TIMESTAMPADD(SQL_TSI_DAY,-1,CURRENT_DATE))
1-(filter (Measure using date <= TIMESTAMPADD(SQL_TSI_DAY,-1,CURRENT_DATE))/Measure display as percentage
Poznámky:
SQL_TSI_DAY
, ale ako alternatívu môžete použiť WEEK a MONTH pre medzitýždenné alebo medzimesačné porovnanie.