![]() |
|
Funksjoner for dato/klokkeslett i kalenderFunksjonene for dato/klokkeslett i kalender manipulerer data i datatyper for dato, klokkeslett og tidsstempel. (Tidsstempeldatatypen er en kombinasjon av dato og klokkeslett.) Alle datofunksjoner er ISO 8601-kompatible. Dette påvirker særlig funksjoner som Week_Of_Year og Week_Of_Quarter, der den innledende uken i året er den første hele uken som inneholder en torsdag. Vi henviser til ISO 8601-standarden for detaljerte opplysninger om hvordan datofunksjoner beregnes. Current_DateReturnerer dagens dato. Datoen er basert på datamaskinen. Verdien inneholder ikke en klokkeslettkomponent. Syntaks: CURRENT_DATE Current_TimeReturnerer gjeldende klokkeslett. Klokkeslettet er basert på datamaskinen. Verdien inneholder ikke en datokomponent. Merknad: Denne funksjonen henter gjeldende klokkeslett når rapporten kjøres. Ved å bruke denne funksjonen med et emneområde for analyse kan du unngå at rapporten hurtigbufres, noe som reduserer ytelsen. Syntaks: CURRENT_TIME (n) der:
Current_TimeStampReturnerer gjeldende dato/tidsstempel. Tidsstempelet er basert på datamaskinen. Merknad: Denne funksjonen henter gjeldende klokkeslett når rapporten kjøres. Ved å bruke denne funksjonen med et emneområde for analyse kan du unngå at rapporten hurtigbufres, noe som reduserer ytelsen. Syntaks: CURRENT_TIMESTAMP (n) der:
Day_Of_QuarterReturnerer et tall (fra 1 til 92) som svarer til dagen i kvartalet for den angitte datoen. Syntaks: DAY_OF_QUARTER (datouttrykk) der:
DayNameReturnerer navnet på ukedagen (på engelsk) for en angitt dato. Syntaks: DAYNAME (datouttrykk) der:
DayOfMonthReturnerer tallet som svarer til dagen i måneden for en angitt dato. Syntaks: DAYOFMONTH (datouttrykk) der:
DayOfWeekReturnerer et tall mellom 1 og 7, som svarer til ukedagen for en angitt dato. Tallet 1 svarer til søndag, og tallet 7 svarer til lørdag. Syntaks: DAYOFWEEK (datouttrykk) der:
DayOfYearReturnerer tallet (fra 1 til 366) som svarer til dagen i året for en angitt dato. Syntaks: DAYOFYEAR (datouttrykk) der:
HourReturnerer et tall (fra 0 til 23) som svarer til timen for et angitt klokkeslett. For eksempel: 0 svarer til midnatt, og 23 svarer til klokken 11 om kvelden. Syntaks: HOUR (klokkeslettuttrykk) der:
MinuteReturnerer et tall (fra 0 til 59) som svarer til minuttet for et angitt klokkeslett. Syntaks: MINUTE (klokkeslettuttrykk) der:
MonthReturnerer tallet (fra 1 til 12) som svarer til måneden for en angitt dato. Syntaks: MONTH (datouttrykk) der:
Month_Of_QuarterReturnerer tallet (fra 1 til 3) som svarer til måneden i kvartalet for en angitt dato. Syntaks: MONTH_OF_QUARTER (datouttrykk) der:
MonthNameReturnerer navnet på måneden (på engelsk) for en angitt dato. Syntaks: MONTHNAME (datouttrykk) der:
NowReturnerer gjeldende tidsstempel. NOW-funksjonen svarer til CURRENT_TIMESTAMP-funksjonen. Merknad: Denne funksjonen henter gjeldende klokkeslett når rapporten kjøres. Ved å bruke denne funksjonen med et emneområde for analyse kan du unngå at rapporten hurtigbufres, noe som reduserer ytelsen. Syntaks: NOW () Quarter_Of_YearReturnerer tallet (fra 1 til 4) som svarer til kvartalet i året for en angitt dato. Syntaks: QUARTER_OF_YEAR (datouttrykk) der:
SecondReturnerer tallet (fra 0 til 59) som svarer til sekundet for et angitt klokkeslett. Syntaks: SECOND (klokkeslettuttrykk) der:
TimestampAddTimestampAdd-funksjonen legger til et angitt antall intervaller i et angitt tidsstempel. Ett enkelt tidsstempel returneres. Syntaks: TimestampAdd (interval, integer_expression, timestamp_expression) der:
Hvis heltallsuttrykket eller tidsstempeluttrykket som sendes til denne funksjonen, er null, returnerer funksjonen verdien null. I det enkleste scenariet legger denne funksjonen bare den angitte heltallsverdien (integer_expression) til den aktuelle komponenten i tidsstempelet, basert på intervallet. Å legge til en uke er det samme som å legge til sju dager, og å legge til et kvartal er det samme som å legge til tre måneder. En negativ heltallsverdi fører til subtrahering (gå tilbake i tid). En overflyt i den angitte komponenten (for eksempel over 60 sekunder, 24 timer, 12 måneder og så videre) fører til at det må legges et passende intervall til neste komponent. Når du for eksempel legger til dagskomponenten i et tidsstempel, vurderer funksjonen om det er overflyt og tar hensyn til antallet dager i en bestemt måned (inkludert skuddår når februar har 29 dager). Når du legger til månedskomponenten i et tidsstempel, kontrollerer funksjonen om det resulterende tidsstempelet har et tilstrekkelig antall dager for dagskomponenten. Hvis du for eksempel legger 1 måned til 2000-05-31, resulterer ikke dette i 2000-06-31 fordi juni ikke har 31 dager. Funksjonen reduserer dagskomponenten til siste dagen i måneden, 2000-06-30 i dette eksemplet. Et lignende problem oppstår når du legger til årskomponenten for et tidsstempel som har februar som månedskomponent og 29 som dagskomponent (det vil si den siste dagen i februar i et skuddår). Hvis det resulterende tidsstempelet ikke faller på et skuddår, reduserer funksjonen dagskomponenten til 28. Nedenfor vises eksempler på TimestampAdd-funksjonen: Kodeeksemplet nedenfor ber etter det resulterende tidsstempelet når 3 dager legges til 2000-02-27 14:30:00. Siden februar 2000 er et skuddår, returnerer dette et enkelt tidsstempel på 2000-03-01 14:30:00. TimestampAdd(SQL_TSI_DAY, 3, TIMESTAMP‘2000-02-27 14:30:00’) Kodeeksemplet nedenfor ber etter det resulterende tidsstempelet når 7 måneder legges til 1999-07-31 0:0:0. Dette returnerer et enkelt tidsstempel på 2000-02-29 00:00:00. Legg merke til reduksjonen av dagskomponenten til 29 på grunn av at februar er en kortere måned. TimestampAdd(SQL_TSI_MONTH, 7, TIMESTAMP‘1999-07-31 00:00:00’) Kodeeksemplet nedenfor ber etter det resulterende tidsstempelet når 25 minutter legges til 2000-07-31 23:35:00. Dette returnerer et enkelt tidsstempel på 2000-08-01 00:00:00. Legg merke til videreføringen av overflyt gjennom månedskomponenten. TimestampAdd(SQL_TSI_MINUTE, 25, TIMESTAMP‘2000-07-31 23:35:00’) TimeStampDiffTimestampDiff-funksjonen returnerer det totale antallet angitte intervaller mellom to tidsstempler. Syntaks: TimestampDiff (interval, timestamp_expression1, timestamp_expression2) der:
Hvis et tidsstempel på null sendes til denne funksjonen, returneres en nullverdi. Denne funksjonen bestemmer først tidsstempelkomponenten som svarer til den angitte intervallparameteren. SQL_TSI_DAY svarer for eksempel til dagskomponenten, og SQL_TSI_MONTH svarer til månedskomponenten. Funksjonen ser deretter på de høyere rangerte komponentene for begge tidsstempler for å beregne det totale antallet intervaller for hvert tidsstempel. Hvis for eksempel det angitte intervallet svarer til månedskomponenten, beregner funksjonen det totale antallet måneder for hvert tidsstempel ved å legge til månedskomponenten og tolv ganger årskomponenten. Til slutt trekker funksjonen fra det første tidsstempelets totale antall intervaller fra det andre tidsstempelets totale antall intervaller. Når funksjonen beregner differansen i dager, blir avkorter funksjonen tidsverdien fra begge tidsstempeluttrykkene, og deretter trekker funksjonen fra datoverdiene. Ved beregning av differansen i uker beregner funksjonen differansen i dager og dividerer på sju før avrunding. Ved beregning av differansen i kvartaler beregner funksjonen differansen i måneder og dividerer på tre før avrunding. Ved beregning av differansen i år beregner funksjonen differansen i måneder og dividerer på 12 før avrunding. TimestampDiff-funksjonen og resultateksempelFølgende kodeeksempel ber om en differanse i dager mellom tidsstemplene 1998-07-31 23:35:00 og 2000-04-01 14:24:00. Verdien 610 returneres. Legg merke til at skuddåret i 2000 fører til en ekstra dag. TimestampDIFF(SQL_TSI_DAY, TIMESTAMP‘1998-07-31 23:35:00’, TIMESTAMP‘2000-04-01 14:24:00’) Week_Of_QuarterReturnerer et tall (fra 1 til 13) som svarer til uken i kvartalet for den angitte datoen. Syntaks: WEEK_OF_QUARTER (datouttrykk) der:
Week_Of_YearReturnerer et tall (fra 1 til 53) som svarer til uken i året for den angitte datoen. Syntaks: WEEK_OF_YEAR (datouttrykk) der:
ÅrReturnerer året for den angitte datoen. Syntaks: YEAR (datouttrykk) der:
Eksempel: YEAR (CURRENT_DATE) |
Publisert August 2018 | Copyright © 2005, 2018, Oracle. Med enerett. Legal Notices. |