Funkce data a času pracují s daty na základě DATE
a DATETIME
.
Funkce | Příklad | Popis | Syntaxe |
---|---|---|---|
CONVERT_TZ | CONVERT_TZ(Order Date, 'UTC', 'America/Denver') |
Převede výraz hodnoty data a času z časového pásma určeného parametrem Staré časové pásmo do časového pásma určeného parametrem Nové časové pásmo a vrátí výslednou hodnotu. |
CONVERT_TZ(výraz, 'Staré časové pásmo', 'Nové časové pásmo') |
CURRENT_Date |
|
Vrátí aktuální datum. Datum je určeno systémem, ve kterém je server Oracle BI spuštěn. |
|
CURRENT_TIME |
|
Vrátí aktuální čas do zadaného množství číslic určujících jeho přesnost. Například: HH:MM:SS.SSS. Pokud není zadán žádný argument, funkce vrátí čas s výchozí přesností. |
|
CURRENT_TIMESTAMP |
|
Vrátí aktuální datum / časovou značku do zadaného množství číslic určujících přesnost. |
|
DAYNAME |
|
Vrátí název dne v týdnu pro zadaný výraz typu Datum. |
|
DAYOFMONTH |
|
Vrátí číslo odpovídající dni v měsíci pro zadaný výraz typu Datum. |
|
DAYOFWEEK |
|
Vrátí číslo v rozsahu 1 až 7 odpovídající dni v týdnu pro zadaný výraz typu Datum. Například číslo 1 vždy odpovídá neděli, číslo 2 odpovídá pondělí atd., až po sobotu, která vrací číslo 7. |
|
DAYOFYEAR |
|
Vrátí číslo v rozsahu 1 až 366 odpovídající dni v roce pro zadaný výraz typu Datum. |
|
DAY_OF_QUARTER |
|
Vrátí číslo v rozsahu 1 až 92 odpovídající dni čtvrtletí pro zadaný výraz typu Datum. |
|
HOUR |
|
Vrátí číslo v rozsahu 0 až 23 odpovídající hodině pro zadaný výraz typu Datum. Například 0 odpovídá 0:00 a 23 odpovídá 23:00. |
|
MINUTE |
|
Vrátí číslo v rozsahu 0 až 59 odpovídající minutě pro zadaný výraz typu Datum. |
|
MONTH |
|
Vrátí číslo v rozsahu 1 až 12 odpovídající měsíci pro zadaný výraz typu Datum. |
|
MONTHNAME |
|
Vrátí název měsíce pro zadaný výraz typu Datum. |
|
MONTH_OF_QUARTER |
|
Vrátí číslo v rozsahu 1 až 3 odpovídající měsíci čtvrtletí pro zadaný výraz typu Datum. |
|
NOW |
|
Vrátí aktuální časovou značku. Funkce |
|
QUARTER_OF_YEAR |
|
Vrátí číslo v rozsahu 1 až 4 odpovídající čtvrtletí v roce pro zadaný výraz typu Datum. |
|
SECOND |
|
Vrátí číslo v rozsahu 0 až 59 odpovídající sekundě pro zadaný výraz typu Čas. |
|
TIMESTAMPADD |
|
Přidá zadaný počet intervalů k časové značce a vrátí jednu časovou značku. Mezi dostupné volby intervalů patří: 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átí celkový počet zadaných intervalů mezi dvěma časovými značkami. Použijte stejné intervaly, jako u funkce TIMESTAMPADD. |
|
WEEK_OF_QUARTER |
|
Vrátí číslo v rozsahu 1 až 13 odpovídající týdnu v čtvrtletí pro zadaný výraz typu Datum. |
|
WEEK_OF_YEAR |
|
Vrátí číslo v rozsahu 1 až 53 odpovídající týdnu v roce pro zadaný výraz typu Datum. |
|
YEAR |
|
Vrátí rok pro zadaný výraz typu Datum. |
|
Zde je uvedeno několik tipů, jak dosáhnout nejlepších výsledků při používání funkcí pro kalendářní data v sešitech k výpočtu fiskálních období, převodu řetězců na kalendářní data, zobrazení data a času v konkrétním časovém pásmu a výpočtu rozdílů v čase.
Výpočet fiskálního roku, čtvrtletí a měsíce:
Cílové oblasti mají obvykle časovou dimenzi, takže můžete použít předem konfigurovaná období, jako jsou fiskální čtvrtletí, fiskální měsíc a fiskální týden. Pokud máte k dispozici pouze pole kalendářního data, můžete tato období vypočítat sami pomocí funkcí pro kalendářní data.
Tento příklad ukazuje výpočet fiskálního čtvrtletí:
'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)
Tento příklad ukazuje výpočet fiskálního roku a měsíce:
'FY'||cast(YEAR(TIMESTAMPADD(SQL_TSI_MONTH, 7,<date field>)) as char)||cast(MONTHNAME(<same date field>) as char)
Poznámky:
||
.cast (xxx(date) as char)
extrahuje část pole kalendářního data.TIMESTAMPADD
připočte (nebo odečte) období z data. Tento příklad používá hodnotu parametru SQL_TSI_MONTH k přidání měsíců.Výše uvedené výpočty fungují dobře v tabulkách, ale při použití ve filtrech mohou mezery mezi vrácenými hodnotami působit nezvykle. V tomto případě použijte čistší, ale složitější výpočet na základě těchto příkladů:
'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')
Převod řetězce na datum:
Do textového pole obsahujícího název sloupce v modré barvě vložte před název sloupce řetězec To_DateTime(
, za název sloupce přidejte formát data, který chcete použít, a následně znak )
. Poté klikněte na položku Přidat krok.
.png''
Když k vytvoření funkce pro převod data použijete volbu Upravit, můžete také použít argument Allow_Variable_Digits
ke zpracování hodnot sloupců s jednocifernými nebo dvoucifernými číselnými hodnotami a argument Null_On_Error
k zahození řádků, které neodpovídají požadovanému vzoru. Podívejte se také na funkce REPLACE a CAST poskytující alternativní způsoby zpracování dat, která neodpovídají požadovanému vzoru.
Jako alternativu k použití funkce To_DateTime()
použijte funkci CAST() pro změnu typu dat hodnoty. Například CAST(SalesDate AS DATE)
.
Dále použijte volbu Nahradit. V návrháři sešitů přejděte v podokně dat na sloupec, který chcete převést, klikněte pravým tlačítkem myši a vyberte položku Nahradit. Proveďte konfiguraci požadovaného typu náhrady a poté klikněte na volbu Přidat krok.
Zobrazení pole data a času v konkrétním časovém pásmu:
Použijte funkci NEW_TIME v databázi ve spojení s funkcí EVALUATE. Například:
evaluate ('new_time(%1,%2,%3)' as char, "DV - Pipeline and Forecast"."Opportunity"."Last Updated Date",'GMT','AST')
Ujistěte se, že pole data obsahuje časovou komponentu.
Výpočet rozdílu v čase:
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 alternativně můžete použít atribut WEEK nebo MONTH pro změnu proti předchozímu týdnu, resp. proti předchozímu měsíci.