Dato- og klokkeslætsfunktioner manipulerer data på basis af DATE
og DATETIME
.
Funktion | Eksempel | Beskrivelse | Syntaks |
---|---|---|---|
CURRENT_Date |
|
Returnerer den aktuelle dato. Datoen fastsættes af det system, hvor Oracle BI kører. |
|
CURRENT_TIME |
|
Returnerer det aktuelle klokkeslæt med en præcision på det angivne antal cifre, for eksempel: TT:MM:SS.SSS Hvis der ikke angives et argument, returnerer funktionen standardpræcisionen. |
|
CURRENT_TIMESTAMP |
|
Returnerer den aktuelle dato/det aktuelle tidsstempel med en præcision på det angivne antal cifre. |
|
DAYNAME |
|
Returnerer navnet på dagen i ugen for et angivet datoudtryk. |
|
DAYOFMONTH |
|
Returnerer det tal, der svarer til dagen i måneden for et angivet datoudtryk. |
|
DAYOFWEEK |
|
Returnerer et tal mellem 1 og 7, som svarer til dagen i ugen for et angivet datoudtryk. 1 svarer til søndag, 2 svarer til mandag og så videre indtil lørdag, som returnerer 7. |
|
DAYOFYEAR |
|
Returnerer tallet (mellem 1 og 366), der svarer til dagen i året for et angivet datoudtryk. |
|
DAY_OF_QUARTER |
|
Returnerer et tal (mellem 1 og 92), der svarer til dagen i kvartalet for det angivne datoudtryk. |
|
HOUR |
|
Returnerer et tal (mellem 0 og 23), der svarer til timetallet for et angivet datoudtryk. 0 svarer for eksempel til kl. 12, og 23 svarer til kl. 11 om aftenen. |
|
MINUTE |
|
Returnerer et tal (mellem 0 og 59), der svarer til minuttallet for et angivet datoudtryk. |
|
MONTH |
|
Returnerer tallet (mellem 1 og 12), der svarer til måneden for et angivet datoudtryk. |
|
MONTHNAME |
|
Returnerer navnet på måneden for et angivet datoudtryk. |
|
MONTH_OF_QUARTER |
|
Returnerer tallet (mellem 1 og 3), der svarer til måneden i kvartalet for et angivet datoudtryk. |
|
NOW |
|
Returnerer det aktuelle tidsstempel. Funktionen |
|
QUARTER_OF_YEAR |
|
Returnerer tallet (mellem 1 og 4), der svarer til kvartalet i året for et angivet datoudtryk. |
|
SECOND |
|
Returnerer tallet (mellem 0 og 59), der svarer til sekundtallet for et angivet klokkeslætsudtryk. |
|
TIMESTAMPADD |
|
Føjer et angivet antal intervaller til et tidsstempel og returnerer et enkelt tidsstempel. De mulige intervaller er: 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 |
|
Returnerer det samlede antal angivne intervaller mellem to tidsstempler. Brug samme intervaller som til TIMESTAMPADD. |
|
WEEK_OF_QUARTER |
|
Returnerer et tal (mellem 1 og 13), der svarer til ugen i kvartalet for det angivne datoudtryk. |
|
WEEK_OF_YEAR |
|
Returnerer et tal (mellem 1 og 53), der svarer til ugen i året for det angivne datoudtryk. |
|
YEAR |
|
Returnerer året for det angivne datoudtryk. |
|
Her er nogle tip til, hvordan du opnår de bedste resultater, når du bruger datofunktioner i dine projektmapper til at beregne regnskabsperioder, konvertere strenge til datoer, vise en dato og et klokkeslæt i en specifik tidszone og beregne forskelle over tid.
Beregn regnskabsår, -kvartal og -måned:
Emneområder har typisk en tidsdimension, så du kan bruge de forudkonfigurerede perioder som regnskabskvartal, regnskabsmåned og regnskabsuge. Hvis du kun har et datofelt, kan du selv beregne disse perioder ved hjælp af datofunktioner.
Dette eksempel beregner regnskabskvartal:
'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)
Dette eksempel beregner regnskabsår:
'FY'||cast(YEAR(TIMESTAMPADD(SQL_TSI_MONTH, 7,<date field>)) as char)||cast(MONTHNAME(<same date field>) as char)
Bemærkninger:
||
sammenkæder værdier.cast (xxx(date) as char)
udtrækker en del af et datafelt.TIMESTAMPADD
lægger perioder til en dato (eller trækker perioder fra en dato). Dette eksempel bruger parameterværdien SQL_TSI_MONTH til at lægge måneder til.Beregningerne ovenfor fungerer godt i tabeller, men når de bruges i filtre, kan afstanden mellem returnerede værdier se mærkelig ud. I dette tilfælde kan du bruge en renere, men mere kompleks beregning, der er baseret på disse eksempler:
'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')
Konverter en streng til en dato:
Indsæt To_DateTime(
før kolonnenavnet i den tekstboks, der indeholder navnet på din kolonne med blåt, og tilføj derefter det datoformat, som du vil bruge efter kolonnenavnet, efterfulgt af )
. Klik derefter på Tilføj trin.
.png
Når du bruger valget Rediger til at oprette funktionen til datokonvertering, kan du også bruge Allow_Variable_Digits
til at behandle kolonneværdier med étcifrede eller tocifrede tal og Null_On_Error
-argumenter til at kassere rækker, der ikke matcher det påkrævede mønster. Se også REPLACE og CAST for at få alternative måder at behandle datoer på, der ikke matcher det påkrævede mønster.
Som et alternativ til To_DateTime()
kan du bruge CAST() til at ændre en værdis datatype. For eksempel CAST(SalesDate AS DATE)
.
Brug derudover valget Erstat. Naviger til den kolonne, som du vil konvertere, i dataruden i projektmappedesigneren. Højreklik derefter, og vælg Erstat. Konfigurer den ønskede erstatningstype, og klik derefter på Tilføj trin.
Vis et dato- og klokkeslætsfelt i en specifik tidszone:
Brug funktionen NEW_TIME i databasen sammen med EVALUATE. Eksempel:
evaluate ('new_time(%1,%2,%3)' as char, "DV - Pipeline and Forecast"."Opportunity"."Last Updated Date",'GMT','AST')
Sørg for, at datofeltet omfatter klokkeslætkomponenten.
Beregn forskel over tid:
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
Bemærkninger:
SQL_TSI_DAY
, men du kan også bruge WEEK og MONTH, uge for uge og måned for måned.