![]() |
|
Dato/tidsfunktioner i kalenderDato/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_DateReturnerer den aktuelle dato. Datoen fastlægges af computeren. Værdien indeholder ikke en tidskomponent. Syntaks: CURRENT_DATE Current_TimeReturnerer 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:
Current_TimeStampReturnerer 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:
Day_Of_QuarterReturnerer et tal (mellem 1 og 92), der svarer til dag i kvartal til den angivne dato. Syntaks: DAY_OF_QUARTER (date_expression) hvor:
DayNameReturnerer navnet på dagen i ugen (på engelsk) til en angivet dato. Syntaks: DAYNAME (date_expression) hvor:
DayOfMonthReturnerer det tal, der svarer til dagen i måneden til en angivet dato. Syntaks: DAYOFMONTH (date_expression) hvor:
DayOfWeekReturnerer 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:
DayOfYearReturnerer det tal (mellem 1 og 366), der svarer til dagen i året·til en angivet dato. Syntaks: DAYOFYEAR (date_expression) hvor:
HourReturnerer 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:
MinuteReturnerer et tal (mellem 0 og 59), der svarer til minuttet·til et angivet klokkeslæt. Syntaks: MINUTE (time_expression) hvor:
MonthReturnerer det tal (mellem 1 og 12), der svarer til måneden·til et angivet klokkeslæt. Syntaks: MONTH (date_expression) hvor:
Month_Of_QuarterReturnerer det tal (mellem 1 og 3), der svarer til måneden·i kvartalet til en angivet dato. Syntaks: MONTH_OF_QUARTER (date_expression) hvor:
MonthNameReturnerer navnet på måneden (på engelsk) til en angivet dato. Syntaks: MONTHNAME (date_expression) hvor:
NowReturnerer 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_YearReturnerer det tal (mellem 1 og 4), der svarer til kvartalet·i året·til en angivet dato. Syntaks: QUARTER_OF_YEAR (date_expression) hvor:
SecondReturnerer det tal (mellem 0 og 59), der svarer til sekunderne·til et angivet klokkeslæt. Syntaks: SECOND (time_expression) hvor:
TimestampAddTimestampAdd-funktionen føjer et angivet antal intervaller til et angivet tidsstempel. Et enkelt tidsstempel returneres. Syntaks: TimestampAdd (interval, integer_expression, timestamp_expression) hvor:
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’) TimeStampDiffTimestampDiff-funktionen returnerer det samlede antal intervaller, der er angivet mellem to tidsstempler. Syntaks: TimestampDiff (interval, timestamp_expression1, timestamp_expression2) hvor:
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 resultaterFø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_QuarterReturnerer et tal (mellem 1 og 13), der svarer til ugen·i kvartal til den angivne dato. Syntaks: WEEK_OF_QUARTER (date_expression) hvor:
Week_Of_YearReturnerer et tal (mellem 1 og 53), der svarer til ugen·i året·til den angivne dato. Syntaks: WEEK_OF_YEAR (date_expression) hvor:
ÅrReturnerer året·til den angivne dato. Syntaks: YEAR (date_expression) hvor:
Eksempel: YEAR (CURRENT_DATE) |
Publiceret August 2018 | Copyright © 2005, 2018, Oracle. Alle rettigheder forbeholdes. Legal Notices |