Funkce data a času

Funkce data a času pracují s daty na základě DATEDATETIME.

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

CURRENT_DATE

Vrátí aktuální datum.

Datum je určeno systémem, ve kterém je server Oracle BI spuštěn.

CURRENT_DATE

CURRENT_TIME

CURRENT_TIME(3)

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_TIME(výraz)

CURRENT_TIMESTAMP

CURRENT_TIMESTAMP(3)

Vrátí aktuální datum / časovou značku do zadaného množství číslic určujících přesnost.

CURRENT_TIMESTAMP(výraz)

DAYNAME

DAYNAME(Order_Date)

Vrátí název dne v týdnu pro zadaný výraz typu Datum.

DAYNAME(výraz)

DAYOFMONTH

DAYOFMONTH(Order_Date)

Vrátí číslo odpovídající dni v měsíci pro zadaný výraz typu Datum.

DAYOFMONTH(výraz)

DAYOFWEEK

DAYOFWEEK(Order_Date)

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.

DAYOFWEEK(výraz)

DAYOFYEAR

DAYOFYEAR(Order_Date)

Vrátí číslo v rozsahu 1 až 366 odpovídající dni v roce pro zadaný výraz typu Datum.

DAYOFYEAR(výraz)

DAY_OF_QUARTER

DAY_OF_QUARTER(Order_Date)

Vrátí číslo v rozsahu 1 až 92 odpovídající dni čtvrtletí pro zadaný výraz typu Datum.

DAY_OF_QUARTER(výraz)

HOUR

HOUR(Order_Time)

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.

HOUR(výraz)

MINUTE

MINUTE(Order_Time)

Vrátí číslo v rozsahu 0 až 59 odpovídající minutě pro zadaný výraz typu Datum.

MINUTE(výraz)

MONTH

MONTH(Order_Time)

Vrátí číslo v rozsahu 1 až 12 odpovídající měsíci pro zadaný výraz typu Datum.

MONTH(výraz)

MONTHNAME

MONTHNAME(Order_Time)

Vrátí název měsíce pro zadaný výraz typu Datum.

MONTHNAME(výraz)

MONTH_OF_QUARTER

MONTH_OF_QUARTER(Order_Date)

Vrátí číslo v rozsahu 1 až 3 odpovídající měsíci čtvrtletí pro zadaný výraz typu Datum.

MONTH_OF_QUARTER(výraz)

NOW

NOW()

Vrátí aktuální časovou značku. Funkce NOW je shodná s funkcí CURRENT_TIMESTAMP.

NOW()

QUARTER_OF_YEAR

QUARTER_OF_YEAR(Order_Date)

Vrátí číslo v rozsahu 1 až 4 odpovídající čtvrtletí v roce pro zadaný výraz typu Datum.

QUARTER_OF_YEAR(výraz)

SECOND

SECOND(Order_Time)

Vrátí číslo v rozsahu 0 až 59 odpovídající sekundě pro zadaný výraz typu Čas.

SECOND(výraz)

TIMESTAMPADD

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

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

TIMESTAMPADD(interval, výraz, časové_razítko)

TIMESTAMPDIFF

TIMESTAMPDIFF(SQL_TSI_MONTH, Time."Order Date",CURRENT_DATE)

Vrátí celkový počet zadaných intervalů mezi dvěma časovými značkami.

Použijte stejné intervaly, jako u funkce TIMESTAMPADD.

TIMESTAMPDIFF(interval, výraz, časové_razítko2)

WEEK_OF_QUARTER

WEEK_OF_QUARTER(Order_Date)

Vrátí číslo v rozsahu 1 až 13 odpovídající týdnu v čtvrtletí pro zadaný výraz typu Datum.

WEEK_OF_QUARTER(výraz)

WEEK_OF_YEAR

WEEK_OF_YEAR(Order_Date)

Vrátí číslo v rozsahu 1 až 53 odpovídající týdnu v roce pro zadaný výraz typu Datum.

WEEK_OF_YEAR(výraz)

YEAR

YEAR(Order_Date)

Vrátí rok pro zadaný výraz typu Datum.

YEAR(výraz)

Tipy pro používání funkcí pro kalendářní data

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:

  • Zřetězená hodnota ||.
  • Funkce cast (xxx(date) as char) extrahuje část pole kalendářního data.
  • Funkce 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:

Služba Oracle Analytics profiluje vaše data a poskytuje doporučení k obohacení pro extrakci a převod kalendářních dat. Pokud potřebujete převést řetězec na datum sami, použijte tyto tipy.
  • 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 Převést na datum. Proveďte konfiguraci data a poté klikněte na volbu Přidat krok.

  • 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 Upravit. Proveďte konfiguraci data a poté klikněte na volbu Přidat krok.

    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.
    Popis GUID-ADBD035B-A62A-4DED-8768-553365BAABFE-default.png následuje
    .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:

Chcete-li zobrazit rozdíl v počtu a procentech mezi aktuálním stavem a včerejším stavem, vytvořte výpočty založené na těchto příkladech:
  • Vypočítejte ukazatel do včerejška: filter (Measure using date <= TIMESTAMPADD(SQL_TSI_DAY,-1,CURRENT_DATE))
  • Vypočítejte rozdíl: Measure - filter (Measure using date <= TIMESTAMPADD(SQL_TSI_DAY,-1,CURRENT_DATE))
  • Vypočítejte procentní rozdíl: 1-(filter (Measure using date <= TIMESTAMPADD(SQL_TSI_DAY,-1,CURRENT_DATE))/Measure display as percentage

Poznámky:

  • Tyto příklady používají atribut 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.
  • Uvedené příklady fungují s normálním nebo přirozeným kalendářem. Pokud potřebujete fiskální měsíce a čtvrtletí, použijte ve výpočtech proměnné úložiště namísto TIMESTAMPADD. Případně postup zkombinujte s tipem Výpočet fiskálního roku, čtvrtletí a měsíce.
  • Některé cílové oblasti zahrnují předem vypočítané ukazatele Předchozí X, jako jsou PY (předchozí rok) či PQ (předchozí čtvrtletí), které můžete použít k výpočtu rozdílů v čase.
  • Alternativně můžete použít funkce TIME SERIES: AGO, PERIODROLLING a TODATE. Prostudujte si téma Funkce časové řady.