Funkcije datuma i vremena podacima manipuliraju temeljem parametra DATE
i DATETIME
.
Funkcija | Primjer | Opis | Sintaksa |
---|---|---|---|
CURRENT_Date |
|
Vraća današnji datum. Datum određuje sustav u kojem je pokrenut Oracle BI. |
|
CURRENT_TIME |
|
Vraća trenutačno vrijeme uz definirani broj znamenki za preciznost, na primjer: HH:MM:SS.SSS Ako argument nije definiran, funkcija će vratiti zadanu preciznost. |
|
CURRENT_TIMESTAMP |
|
Vraća današnji datum / vremensku oznaku uz definirani broj znamenki za preciznost. |
|
DAYNAME |
|
Vraća naziv dana u tjednu za definirani izraz datuma. |
|
DAYOFMONTH |
|
Vraća broj koji odgovara danu u mjesecu za definirani izraz datuma. |
|
DAYOFWEEK |
|
Vraća broj između 1 i 7 koji odgovara danu u tjednu za definirani izraz datuma. 1, na primjer, uvijek odgovara nedjelji, 2 odgovara ponedjeljku itd. sve do subote koja će vratiti 7. |
|
DAYOFYEAR |
|
Vraća broj (između 1 i 366) koji odgovara danu u godini za navedeni izraz datuma. |
|
DAY_OF_QUARTER |
|
Vraća broj (između 1 i 92) koji odgovara danu tromjesečja za navedeni izraz datuma. |
|
HOUR |
|
Vraća broj (između 0 i 23) koji označava sat za navedeni izraz vremena. Npr., 0 označava ponoć, a 23 označava 11 navečer. |
|
MINUTE |
|
Vraća broj (između 0 i 59) koji predstavlja minutu za navedeni izraz vremena. |
|
MONTH |
|
Vraća broj (između 1 i 12) koji predstavlja mjesec za navedeni izraz datuma. |
|
MONTHNAME |
|
Vraća naziv mjeseca za navedeni izraz datuma. |
|
MONTH_OF_QUARTER |
|
Vraća broj (između 1 i 3) koji odgovara mjesecu u tromjesečju za navedeni izraz datuma. |
|
NOW |
|
Vraća trenutačnu vremensku oznaku. Funkcija |
|
QUARTER_OF_YEAR |
|
Vraća broj (između 1 i 4) koji odgovara tromjesečju u godini za navedeni izraz datuma. |
|
SECOND |
|
Vraća broj (između 0 i 59) koji predstavlja sekunde za navedeni izraz vremena. |
|
TIMESTAMPADD |
|
Dodaje određeni broj intervala u vremensku oznaku i vraća jednu vremensku oznaku. Za interval su dostupne sljedeće opcije: 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 |
|
Vraća ukupan broj navedenih intervala između dvije vremenske oznake. Upotrijebite iste intervale kao TIMESTAMPADD. |
|
WEEK_OF_QUARTER |
|
Vraća broj (između 1 i 13) koji odgovara tjednu tromjesečja za navedeni izraz datuma. |
|
WEEK_OF_YEAR |
|
Vraća broj (između 1 i 53) koji odgovara tjednu godine za navedeni izraz datuma. |
|
YEAR |
|
Vraća godinu za navedeni izraz datuma. |
|
Donosimo savjete za dobivanje najboljih rezultata pri upotrebi funkcija datuma u radnim knjigama za izračunavanje fiskalnih razdoblja, pretvaranje nizova u datume, prikazivanje datuma i vremena u konkretnoj vremenskoj zoni te izračunavanje razlika tijekom vremena.
Izračunavanje fiskalne godine, tromjesečja i mjeseca:
Predmetna područja obično imaju vremensku dimenziju, tako da možete upotrijebiti prethodno konfigurirana razdoblja poput fiskalnog tromjesečja, fiskalnog mjeseca i fiskalnog tjedna. Ako imate samo jedno polje za datum, ta razdoblja možete izračunati sami, s pomoću funkcija datuma.
U ovom je primjeru izračunato fiskalno tromjesečje:
'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)
U ovom su primjeru izračunati fiskalna godina i mjesec:
'FY'||cast(YEAR(TIMESTAMPADD(SQL_TSI_MONTH, 7,<date field>)) as char)||cast(MONTHNAME(<same date field>) as char)
Napomene:
||
ulančava vrijednosti.cast (xxx(date) as char)
izdvaja dio polja s datumom.TIMESTAMPADD
dodaje razdoblja datumu (ili ih oduzima). U tom se primjeru upotrebljava vrijednost parametra SQL_TSI_MONTH za dodavanje mjeseci.Prethodni izračuni upotrebljivi su u tablicama, ali pri upotrebi u filtrima, razmaci između vraćenih vrijednosti mogli bi djelovati neobično. U tom slučaju upotrijebite jasnije, ali složenije izračune na temelju sljedećih primjera:
'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')
Konverzija niza u datum:
U tekstnom okviru koji sadrži naziv vašeg stupca u plavoj boji, umetnite To_DateTime(
prije naziva stupca, a zatim dodajte format datuma koji želite upotrijebiti nakon naziva stupca te potom )
i pritisnite Dodaj korak.
.png
Ako za stvaranje funkcije konverzije datuma upotrebljavate opciju uređivanja, možete upotrijebiti i Allow_Variable_Digits
za obradu vrijednosti stupca jednoznamenkastim/dvoznamenkastim brojevima i argumente Null_On_Error
za odbacivanje redaka koji ne odgovaraju traženom uzorku. Pogledajte i REPLACE te CAST kao alternativne načine obrade podataka koji ne odgovaraju traženom uzorku.
Kao alternativu izrazu To_DateTime()
upotrijebite CAST() za promjenu vrste podataka vrijednosti. Npr., CAST(SalesDate AS DATE)
.
Osim toga, upotrijebite opciju Zamijeni. U dizajneru radne knjige prijeđite na prozor s podacima za stupac koji želite konvertirati, pritisnite desnu tipku miša i odaberite Zamijeni. Konfigurirajte željenu vrstu zamjene i pritisnite Dodaj korak.
Prikaz polja s datumom i vremenom u konkretnoj vremenskoj zoni:
Upotrijebite funkciju NEW_TIME iz baze podataka u kombinaciji s funkcijom EVALUATE. Na primjer:
evaluate ('new_time(%1,%2,%3)' as char, "DV - Pipeline and Forecast"."Opportunity"."Last Updated Date",'GMT','AST')
Uvjerite se da polje s datumom uključuje vremensku komponentu.
Izračunavanje razlike tijekom vremena:
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 prikaz u obliku postotka
Napomene:
SQL_TSI_DAY
, međutim alternativno možete rabiti WEEK i MONTH tjedan za tjednom i mjesec za mjesecom.