Dátum- és időfüggvények

A dátum- és időfüggvények a DATE és DATETIME alapján végeznek műveleteket az adatokon.

Függvény Példa Leírás Szintaxis

CURRENT_Date

CURRENT_DATE

Visszatérési értéke az aktuális dátum.

A dátumot az a rendszer határozza meg, amelyiken az Oracle BI fut.

CURRENT_DATE

CURRENT_TIME

CURRENT_TIME(3)

Visszatérési értéke az aktuális idő, megadott számjegyű pontossággal kifejezve, például: HH:MM:SS.SSS

Argumentum hiányában a függvény visszatérési értéke az alapértelmezett pontosság.

CURRENT_TIME(expr)

CURRENT_TIMESTAMP

CURRENT_TIMESTAMP(3)

Visszatérési értéke az aktuális dátum/időbélyeg, megadott számjegyű pontossággal kifejezve.

CURRENT_TIMESTAMP(expr)

DAYNAME

DAYNAME(Order_Date)

Visszatérési értéke az adott dátumkifejezéshez tartozó hét napjának a neve.

DAYNAME(expr)

DAYOFMONTH

DAYOFMONTH(Order_Date)

Visszatérési értéke a nap hónapon belüli sorszáma a megadott dátumkifejezésnél.

DAYOFMONTH(expr)

DAYOFWEEK

DAYOFWEEK(Order_Date)

Visszatérési értéke az adott dátumkifejezés napjának a héten belüli pozíciója (1 és 7 közötti szám). Például az 1 a vasárnapot, a 2 a hétfőt és így tovább, a 7 pedig a szombatot jelöli.

DAYOFWEEK(expr)

DAYOFYEAR

DAYOFYEAR(Order_Date)

Visszatérési értéke az adott dátumkifejezés napjának az éven belüli pozíciója (1 és 366 közötti szám).

DAYOFYEAR(expr)

DAY_OF_QUARTER

DAY_OF_QUARTER(Order_Date)

Visszatérési értéke az adott dátumkifejezés napjának a negyedéven belüli pozíciója (1 és 92 közötti szám).

DAY_OF_QUARTER(expr)

HOUR

HOUR(Order_Time)

Visszatérési értéke a megadott időpont-kifejezés órában kifejezett értéke (0 és 23 közötti szám). A 0 a déli 12 órának, a 23 pedig az este 11 órának felel meg.

HOUR(expr)

MINUTE

MINUTE(Order_Time)

Visszatérési értéke a megadott időpont-kifejezés percben kifejezett értéke (0 és 59 közötti szám).

MINUTE(expr)

MONTH

MONTH(Order_Time)

Visszatérési értéke a megadott dátumkifejezés hónapban kifejezett értéke (1 és 12 közötti szám).

MONTH(expr)

MONTHNAME

MONTHNAME(Order_Time)

Visszatérési értéke a hónap neve a megadott dátumkifejezésnél.

MONTHNAME(expr)

MONTH_OF_QUARTER

MONTH_OF_QUARTER(Order_Date)

Visszatérési értéke az adott dátumkifejezés hónapjának a negyedévben belüli pozíciója (1 és 3 közötti szám).

MONTH_OF_QUARTER(expr)

NOW

NOW()

Visszatérési értéke az aktuális időbélyeg. A NOW függvény a CURRENT_TIMESTAMP függvénnyel egyenértékű.

NOW()

QUARTER_OF_YEAR

QUARTER_OF_YEAR(Order_Date)

Visszatérési értéke az adott dátumkifejezés negyedévének az éven belüli pozíciója (1 és 4 közötti szám).

QUARTER_OF_YEAR(expr)

SECOND

SECOND(Order_Time)

Visszatérési értéke a megadott időpont-kifejezés percben kifejezett értéke (0 és 59 közötti szám).

SECOND(expr)

TIMESTAMPADD

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

Egy időbélyeghez megadott számú időtartamot ad hozzá, és ennek eredményét egyetlen időbélyegként adja vissza.

Lehetséges időköz-beállítások: 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)

Visszatérési értéke két időbélyeg közötti időtartam a megadott időközök számával kifejezve.

Ugyanazokat az időközöket használhatja, mint a TIMESTAMPADD függvény esetében.

TIMESTAMPDIFF(interval, expr, timestamp2)

WEEK_OF_QUARTER

WEEK_OF_QUARTER(Order_Date)

Visszatérési értéke az adott dátumkifejezés hetének a negyedéven belüli pozíciója (1 és 13 közötti szám).

WEEK_OF_QUARTER(expr)

WEEK_OF_YEAR

WEEK_OF_YEAR(Order_Date)

Visszatérési értéke az adott dátumkifejezés hetének az éven belüli pozíciója (1 és 53 közötti szám).

WEEK_OF_YEAR(expr)

YEAR

YEAR(Order_Date)

Visszatérési értéke a megadott dátumkifejezés évszáma.

YEAR(expr)

Tippek dátumfüggvények használatához

Íme néhány tipp, hogy a lehető legjobb eredményeket érhesse el, amikor dátumfüggvényeket használ a munkafüzetében pénzügyi időszakok kiszámításához, karakterláncok dátummá konvertálásához, dátum és idő megjelenítéséhez egy adott időzóna szerint, illetve a különbségek kiszámításához az idők folyamán.

Pénzügyi év, negyedév és hónap kiszámítása:

A tárgyterületek tipikusan rendelkeznek egy idő dimenzióval, ezért használhatók az olyan előre konfigurált időszakok, mint a pénzügyi negyedév, a pénzügyi hónap és a pénzügyi hét. Ha csak dátum mezővel rendelkezik, ezeket az időszakokat Ön is kiszámíthatja dátumfüggvények használatával.

Ez a példa a pénzügyi negyedévet számítja ki:

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

Ez a példa a pénzügyi évet és hónapot számítja ki:

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

Megjegyzések:

  • || összefűzi az értékeket.
  • cast (xxx(date) as char) kinyeri egy dátum mező egy részét.
  • TIMESTAMPADD hozzáad időszakokat egy dátumhoz (vagy kivonja őket belőle). Ez a példa az SQL_TSI_MONTH paraméterértéket használja hónapok hozzáadásához.

A fenti számítások jól működnek táblázatokban, de ha szűrőkben használják őket, a visszaadott értékek közötti térköz furcsán nézhet ki. Ebben az esetben használjon tisztább, de összetettebb számítást a következő példák alapján:

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

Karakterlánc dátummá alakítása:

Az Oracle Analytics profilt készít az adatairól, és gazdagítási javaslatokat ad dátumok kinyeréséhez és átalakításához. Ha magának kell átalakítania egy karakterláncot dátummá, használja ezeket a tippeket.
  • A munkafüzet-tervezőben, az adatok panelen navigáljon az átalakítani kívánt oszlopra, kattintson a jobb egérgombbal, és válassza az Átalakítás dátummá lehetőséget. Konfigurálja a dátumot, majd kattintson a Lépés hozzáadása lehetőségre.

  • A munkafüzet-tervezőben, az adatok panelen navigáljon az átalakítani kívánt oszlopra, kattintson a jobb egérgombbal, és válassza a Szerkesztés lehetőséget. Konfigurálja a dátumot, majd kattintson a Lépés hozzáadása lehetőségre.

    Az oszlop nevét kék színűen tartalmazó szövegmezőbe illessze be a To_DateTime( elemet az oszlop neve elé, majd adja hozzá a használni kívánt dátumformátumot, utána a ) elemet, majd kattintson a Lépés hozzáadása lehetőségre.
    A(z) GUID-ADBD035B-A62A-4DED-8768-553365BAABFE-default.png leírása
    .png ábra leírása

    Amikor a Szerkesztés beállítás használatával hozza létre a dátumátalakítási függvényt, használhatja az Allow_Variable_Digits karakterláncot az egy vagy két számjegyű oszlopértékek feldolgozásához, míg a Null_On_Error argumentumokkal elvetheti azokat a sorokat, amelyek nem felelnek meg a szükséges mintának. A REPLACE és CAST is használható a szükséges mintának nem megfelelő adatok feldolgozásához.

    A To_DateTime() helyett használható a CAST() értékek adattípusának módosításához. Például: CAST(SalesDate AS DATE).

    Továbbá használhatja a Csere opciót. A munkafüzet-tervezőben, az adatok panelen navigáljon az átalakítani kívánt oszlopra, kattintson a jobb egérgombbal, és válassza a Csere lehetőséget. Konfigurálja a kívánt csere típusát, majd kattintson a Lépés hozzáadása lehetőségre.

Dátum és idő mező megjelenítése egy adott időzónában:

Az adatbázisban használja egyszerre a NEW_TIME és az EVALUATE függvényeket. Például:

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

Győződjön meg róla, hogy a dátum mező tartalmazza az időösszetevőt.

Időszak alatti különbség kiszámítása:

Ha a ma és a tegnap közötti különbséget számként és százalékként szeretné megjeleníteni, hozzon létre számításokat a következő példák alapján:
  • Mérőszám kiszámítása a tegnapi napig: filter (Measure using date <= TIMESTAMPADD(SQL_TSI_DAY,-1,CURRENT_DATE))
  • Különbség kiszámítása: Measure - filter (Measure using date <= TIMESTAMPADD(SQL_TSI_DAY,-1,CURRENT_DATE))
  • Százalékos különbség kiszámítása: 1-(filter (Measure using date <= TIMESTAMPADD(SQL_TSI_DAY,-1,CURRENT_DATE))/Measure display as percentage

Megjegyzések:

  • Ezek a példák az SQL_TSI_DAY, karakterláncot használják, viszont a WEEK és MONTH is használható hétről hétre és hónapról hónapra számításban.
  • Ezek a példák működnek a normális vagy a természetes naptárral. Ha a pénzügyi hónapokra és negyedévekre van szüksége, a TIMESTAMPADD helyett adattárváltozókat használjon. Alternatív megoldásként kombinálhatja ezt a Pénzügyi év, negyedév és hónap kiszámítása tippel.
  • Egyes tárgyterületek előre kiszámított Prior X mérőszámokat tartalmaznak (például PY – prior year, előző év; PQ – prior quarter, előző negyedév), amelyek segítségével kiszámíthatók a különbségek az idők folyamán.
  • Alternatív lehetőségként használhat TIME SERIES függvényeket: AGO, PERIODROLLING és TODATE. Lásd: Idősoros függvények.