Udskriv      Åbn PDF-version af online-hjælp


Forrige emne

Næste emne

Dato/tidsfunktioner i kalender

Dato/tidsfunktioner i kalender manipulerer data i datatyper for dato, tid og tidsstempel. (Tidsstempeldatatypen er en kombination af dato og tid).

Alle datofunktioner er ISO 8601-kompatible. Det påvirker især funktioner, så som Week_Of_Year og Week_Of_Quarter, hvor den første uge i året er den første fulde uge, der omfatter en tirsdag. Se ISO 8601-standarden for at få detaljerede oplysninger om, hvordan datofunktioner beregnes.

Current_Date

Returnerer den aktuelle dato. Datoen fastlægges af computeren. Værdien indeholder ikke en tidskomponent.

Syntaks:

CURRENT_DATE

Current_Time

Returnerer det aktuelle klokkeslæt. Klokkeslættet fastlægges af computeren. Værdien indeholder ikke en datokomponent.

Bemærk: Denne funktion indeholder det aktuelle klokkeslæt på det tidspunkt, hvor rapporten køres. Brug af denne funktion med et analyseemneområde forhindrer rapporten i at blive cachelagret, hvilket reducerer ydeevnen.

Syntaks:

CURRENT_TIME (n)

hvor:

n

Et heltal, der repræsenterer det antal cifre, som brøkdel af sekund skal vises med. Argumentet er valgfrit. Funktionen returnerer standardpræcisionen, når intet argument er angivet.

Current_TimeStamp

Returnerer aktuel dato/tidsstempel. Tidsstemplet fastlægges af computeren.

Bemærk: Denne funktion indeholder det aktuelle klokkeslæt på det tidspunkt, hvor rapporten køres. Brug af denne funktion med et analyseemneområde forhindrer rapporten i at blive cachelagret, hvilket reducerer ydeevnen.

Syntaks:

CURRENT_TIMESTAMP (n)

hvor:

n

Et heltal, der repræsenterer det antal cifre, som brøkdel af sekund skal vises med. Argumentet er valgfrit. Funktionen returnerer standardpræcisionen, når intet argument er angivet.

Day_Of_Quarter

Returnerer et tal (mellem 1 og 92), der svarer til dag i kvartal til den angivne dato.

Syntaks:

DAY_OF_QUARTER (date_expression)

hvor:

date_expression

Et udtryk, der evalueres til en dato.

DayName

Returnerer navnet på dagen i ugen (på engelsk) til en angivet dato.

Syntaks:

DAYNAME (date_expression)

hvor:

date_expression

Et udtryk, der evalueres til en dato.

DayOfMonth

Returnerer det tal, der svarer til dagen i måneden til en angivet dato.

Syntaks:

DAYOFMONTH (date_expression)

hvor:

date_expression

Et udtryk, der evalueres til en dato.

DayOfWeek

Returnerer et tal mellem 1 og 7, der svarer til dag i uge til en angivet dato. Tallet 1 svarer til søndag, og tallet 7 svarer til lørdag.

Syntaks:

DAYOFWEEK (date_expression)

hvor:

date_expression

Et udtryk, der evalueres til en dato.

DayOfYear

Returnerer det tal (mellem 1 og 366), der svarer til dagen i året·til en angivet dato.

Syntaks:

DAYOFYEAR (date_expression)

hvor:

date_expression

Et udtryk, der evalueres til en dato.

Hour

Returnerer et tal (mellem 0 og 23), der svarer til timen til et angivet klokkeslæt. F.eks. svarer 0 til 12 a.m. og 23 svarer til 11 p.m.

Syntaks:

HOUR (time_expression)

hvor:

time_expression

Et udtryk, der evalueres til et klokkeslæt.

Minute

Returnerer et tal (mellem 0 og 59), der svarer til minuttet·til et angivet klokkeslæt.

Syntaks:

MINUTE (time_expression)

hvor:

time_expression

Et udtryk, der evalueres til et klokkeslæt.

Month

Returnerer det tal (mellem 1 og 12), der svarer til måneden·til et angivet klokkeslæt.

Syntaks:

MONTH (date_expression)

hvor:

date_expression

Et udtryk, der evalueres til en dato.

Month_Of_Quarter

Returnerer det tal (mellem 1 og 3), der svarer til måneden·i kvartalet til en angivet dato.

Syntaks:

MONTH_OF_QUARTER (date_expression)

hvor:

date_expression

Et udtryk, der evalueres til en dato.

MonthName

Returnerer navnet på måneden (på engelsk) til en angivet dato.

Syntaks:

MONTHNAME (date_expression)

hvor:

date_expression

Et udtryk, der evalueres til en dato.

Now

Returnerer det aktuelle tidsstempel. NOW-funktionen svarer til CURRENT_TIMESTAMP-funktionen.

Bemærk: Denne funktion indeholder det aktuelle klokkeslæt på det tidspunkt, hvor rapporten køres. Brug af denne funktion med et analyseemneområde forhindrer rapporten i at blive cachelagret, hvilket reducerer ydeevnen.

Syntaks:

NOW ()

Quarter_Of_Year

Returnerer det tal (mellem 1 og 4), der svarer til kvartalet·i året·til en angivet dato.

Syntaks:

QUARTER_OF_YEAR (date_expression)

hvor:

date_expression

Et udtryk, der evalueres til en dato.

Second

Returnerer det tal (mellem 0 og 59), der svarer til sekunderne·til et angivet klokkeslæt.

Syntaks:

SECOND (time_expression)

hvor:

time_expression

Et udtryk, der evalueres til et klokkeslæt.

TimestampAdd

TimestampAdd-funktionen føjer et angivet antal intervaller til et angivet tidsstempel. Et enkelt tidsstempel returneres.

Syntaks:

TimestampAdd (interval, integer_expression, timestamp_expression)

hvor:

interval

Det angivne interval. Gyldige værdier 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

integer_expression

Et udtryk, der evalueres til et heltal. Det er antallet af intervaller, der skal tilføjes.

timestamp_expression

Tidsstemplet bruges som basis i beregningen.

Et NULL heltalsudtryk eller et NULL tidsstempeludtryk, der overføres til denne funktion, resulterer i en NULL returværdi.

I det simpleste scenarie tilføjer denne funktion blot den angivne heltalsværdi (integer_expression) til den relevante komponent i tidsstemplet på basis af intervallet. Tilføjelse af en uge oversættes til tilføjelse af syv dage, og tilføjelse af et kvartal oversættes til tilføjelse af tre måneder. En negativ heltalsværdi returnerer i subtraktion (går tilbage i tid).

Et overløb i den angivne komponent (så som mere end 60 sekunder, 24 timer, tolv måneder osv. ) gør det nødvendigt at tilføje en relevant mængde til den næste komponent. Når der f.eks. føjes til dagskomponenten i tidsstemplet, medregner funktionen overløb og tager hensyn til antallet af dage i en bestemt måned (inkl. skudår, når februar har 29 dage).

Når der føjes til månedskomponenten i et tidsstempel, verificerer funktionen, at det resulterende tidsstempel har et tilstrækkeligt antal dage til dagskomponenten. Tilføjelse af 1 måned til 2000-05-31 resulterer f.eks. ikke i 2000-06-31, da juni ikke har 31 dage. Funktionen reducerer dagskomponenten til den sidste dag i måneden, i dette eksempel 2000-06-30.

Et lignende problem opstår, når der føjes til årskomponenten i et tidsstempel med månedskomponenten Februar og dagskomponenten 29 (dvs. sidste dag i februar i et skudår). Hvis det resulterende tidsstempel ikke falder i et skudår, reducerer funktionen dagskomponenten til 28.

Følgende er eksempler på TimestampAdd-funktionen:

Følgende kodeeksempel anmoder om det resulterende tidsstempel, når 3 dage føjes til 2000-02-27 14:30:00. Da februar 2000 er et skudår, returneres et enkelt tidsstempel, 2000-03-01 14:30:00.

TimestampAdd(SQL_TSI_DAY, 3, TIMESTAMP‘2000-02-27 14:30:00’)

Følgende kodeeksempel anmoder om det resulterende tidsstempel, når 7 måneder føjes til 1999-07-31 0:0:0. Det returnerer et enkelt tidsstempel, 2000-02-29 00:00:00. Bemærk reduktionen af dagskomponenten til 29, da februar er en kortere måned.

TimestampAdd(SQL_TSI_MONTH, 7, TIMESTAMP‘1999-07-31 00:00:00’)

Følgende kodeeksempel anmoder om det resulterende tidsstempel, når 25 minutter føjes til 2000-07-31 23:35:00. Det returnerer et enkelt tidsstempel, 2000-08-01 00:00:00. Bemærk videreførslen af overløb gennem månedskomponenten.

TimestampAdd(SQL_TSI_MINUTE, 25, TIMESTAMP‘2000-07-31 23:35:00’)

TimeStampDiff

TimestampDiff-funktionen returnerer det samlede antal intervaller, der er angivet mellem to tidsstempler.

Syntaks:

TimestampDiff (interval, timestamp_expression1, timestamp_expression2)

hvor:

interval

Det angivne interval. Gyldige værdier 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

timestamp_expression1

Tidsstemplet, der skal trækkes fra det andet tidsstempel.

timestamp_expression2

Det andet tidsstempel, timestamp_expression1, trækkes fra dette tidsstempel for at fastlægge forskellen.

En NULL parameter for tidsstempeludtryk, der overføres til denne funktion, resulterer i en NULL returværdi.

Denne funktion fastlægger først den tidsstempelkomponent, der svarer til den angivne intervalparameter. F.eks. svarer SQL_TSI_DAY til dagskomponenten og SQL_TSI_MONTH svarer til månedskomponenten.

Funktionen ser dernæst på de højere rangerende komponenter i begge tidsstempler for at beregne det samlede antal intervaller til hvert tidsstempel. Hvis f.eks. det angivne interval svarer til månedskomponenten, beregner funktionen det samlede antal måneder til hvert tidsstempel ved at tilføje månedskomponenten og tolv gange årskomponenten.

Til sidst trækker funktionen det første tidsstempels samlede antal intervaller fra det andet tidsstempels samlede antal intervaller.

Når forskellen i dage beregnes, afkorter funktionen klokkeslætsværdierne fra begge Timestamp-udtryk og fratrækker dernæst datoværdierne.

Når forskellen i uger beregnes, beregner funktionen forskellen i dage og dividerer med syv før afrunding.

Når forskellen i kvartaler·beregnes, beregner funktionen forskellen i måneder og dividerer med tre før afrunding.

Når forskellen i år·beregnes, beregner funktionen forskellen i måneder og dividerer med tolv før afrunding.

Eksempel på TimestampDiff-funktion og resultater

Følgende kodeeksempel anmoder om en forskel i dage mellem tidsstemplerne 1998-07-31 23:35:00 og 2000-04-01 14:24:00. Det returnerer værdien 610. Bemærk, at skudåret i 2000 resulterer i en yderligere dag.

TimestampDIFF(SQL_TSI_DAY, TIMESTAMP‘1998-07-31 23:35:00’, TIMESTAMP‘2000-04-01 14:24:00’)

Week_Of_Quarter

Returnerer et tal (mellem 1 og 13), der svarer til ugen·i kvartal til den angivne dato.

Syntaks:

WEEK_OF_QUARTER (date_expression)

hvor:

date_expression

Et udtryk, der evalueres til en dato.

Week_Of_Year

Returnerer et tal (mellem 1 og 53), der svarer til ugen·i året·til den angivne dato.

Syntaks:

WEEK_OF_YEAR (date_expression)

hvor:

date_expression

Et udtryk, der evalueres til en dato.

År

Returnerer året·til den angivne dato.

Syntaks:

YEAR (date_expression)

hvor:

date_expression

Et udtryk, der evalueres til en dato.

Eksempel:

YEAR (CURRENT_DATE)


Publiceret September 2017 Copyright © 2005, 2017, Oracle. Alle rettigheder forbeholdes. Legal Notices