![]() |
|
Funktioner för kalenderdatum och kalendertidFunktionerna för kalenderdatum och kalendertid bearbetar data i datatyperna för datum, tid och tidstämplar. (Datatypen för tidstämplar är en kombination av datum och tid.) Alla datumfunktioner är ISO 8601-kompatibla. Detta påverkar i synnerhet funktionerna Week_Of_Year och Week_Of_Quarter där årets första vecka är den första fullständiga veckan som innehåller en torsdag. Detaljerad information om hur datumfunktioner beräknas finns i ISO 8601-standarden. Current_DateReturnerar dagens datum. Datumet fastställs av datorn. Värdet innehåller inte tidskomponenten. Syntax: CURRENT_DATE Current_TimeReturnerar aktuell tid. Tiden fastställs av datorn. Värdet innehåller inte tidskomponenten. Obs! Funktionen hämtar den aktuella tiden vid den tidpunkt när rapporten körs. Om funktionen används tillsammans med ett ämnesområde för analys cachelagras inte rapporten, vilket försämrar prestanda. Syntax: CURRENT_TIME (n) där:
Current_TimeStampReturnerar aktuellt datum/tidstämpel. Tidstämpeln fastställs av datorn. Obs! Funktionen hämtar den aktuella tiden vid den tidpunkt när rapporten körs. Om funktionen används tillsammans med ett ämnesområde för analys cachelagras inte rapporten, vilket försämrar prestanda. Syntax: CURRENT_TIMESTAMP (n) där:
Day_Of_QuarterReturnerar ett tal (mellan 1 och 92) som motsvarar det nummer som det angivna datumet har i kvartalet. Syntax: DAY_OF_QUARTER (date_expression) där:
DayNameReturnerar namnet på veckodagen (på engelska) för ett angivet datum. Syntax: DAYNAME (date_expression) där:
DayOfMonthReturnerar det nummer som det angivna datumet har i månaden. Syntax: DAYOFMONTH (date_expression) där:
DayOfWeekReturnerar ett tal mellan 1 och 7 som motsvarar det angivna datumets veckodag. Siffran 1 motsvarar söndag och siffran 7 lördag. Syntax: DAYOFWEEK (date_expression) där:
DayOfYearReturnerar ett tal (mellan 1 och 366) som motsvarar det nummer som det angivna datumet har på året. Syntax: DAYOFYEAR (date_expression) där:
TimmeReturnerar ett tal (mellan 0 och 23) som motsvarar den angivna tidpunktens timslag. Siffran 0 motsvarar klockan 12 och siffran 23 motsvarar klockan 11 på kvällen. Syntax: HOUR (time_expression) där:
MinutReturnerar ett tal (mellan 0 och 59) som motsvarar minuterna för den angivna tidpunkten. Syntax: MINUTE (time_expression) där:
MånadReturnerar ett tal (mellan 1 och 12) som motsvarar månaden för det angivna datumet. Syntax: MONTH (date_expression) där:
Month_Of_QuarterReturnerar ett tal (mellan 1 och 3) som motsvarar den månad som det angivna datumet har i kvartalet. Syntax: MONTH_OF_QUARTER (date_expression) där:
MonthNameReturnerar namnet på månaden (på engelska) för ett angivet datum. Syntax: MONTHNAME (date_expression) där:
NuReturnerar den aktuella tidstämpeln. Funktionen NOW motsvarar funktionen CURRENT_TIMESTAMP. Obs! Funktionen hämtar den aktuella tiden vid den tidpunkt när rapporten körs. Om funktionen används tillsammans med ett ämnesområde för analys cachelagras inte rapporten, vilket försämrar prestanda. Syntax: NOW () Quarter_Of_YearReturnerar ett tal (mellan 1 och 4) som motsvarar det kvartal som det angivna datumet infaller under året. Syntax: QUARTER_OF_YEAR (date_expression) där:
SekundReturnerar ett tal (mellan 0 och 59) som motsvarar sekunderna för den angivna tidpunkten. Syntax: SECOND (time_expression) där:
TimestampAddFunktionen TimestampAdd lägger till ett angivet antal intervaller till en angiven tidstämpel. En enda tidstämpel returneras. Syntax: TimestampAdd (interval, integer_expression, timestamp_expression) där:
Om det heltal eller den tidstämpel som skickas till den här funktionen har värdet null returneras null som värde på funktionen. I det enklaste fallet lägger den här funktionen bara till ett angivet heltal (integer_expression) till lämplig komponent i tidstämpeln baserat på intervallet. Om du lägger till en vecka innebär det att sju dagar läggs till och om du lägger till ett kvartal innebär det att tre månader läggs till. Ett negativt heltalsvärde leder till en subtraktion (att man går bakåt i tiden). Om det blir för många av den angivna komponenten (t.ex. fler än 60 sekunder, 24 timmar eller 12 månader) läggs lämpligt antal till i nästa komponent. Om du till exempel gör ett tillägg till dagkomponenten i en tidstämpel tar funktionen hänsyn till antalet dagar i en viss månad (inklusive skottår då det är 29 dagar i februari). När ett tillägg görs till månadskomponenten i en tidstämpel kontrollerar funktionen att den returnerade tidstämpeln har rätt antal dagar i dagkomponenten. Om du till exempel lägger till en månad till 2000-05-31 blir inte resultatet 2000-06-31 eftersom det inte är 30 dagar i juni. Funktionen drar då ned dagkomponenten till den sista dagen i månaden, dvs. 2000-06-30. Ett liknande problem uppstår när tillägg görs till årskomponenten i en tidstämpel med månadskomponenten februari och dagkomponenten 29 (dvs. den sista dagen i februari under ett skottår). Om inte den returnerade tidstämpeln infaller under ett skottår reduceras dagkomponenten till 28. Här följer några exempel på funktionen TimestampAdd: I följande exempel efterfrågas den resulterande tidstämpeln när tre dagar läggs till 2000-02-27 14:30:00. Eftersom 2000 är ett skottår returneras tidstämpeln 2000-03-01 14:30:00. TimestampAdd(SQL_TSI_DAY, 3, TIMESTAMP‘2000-02-27 14:30:00’) I följande exempel efterfrågas den resulterande tidstämpeln när sju månader läggs till 1999-07-31 0:0:0. Tidstämpeln 2000-02-29 00:00:00 returneras. Lägg märke till att datumkomponenten minskar till 29 eftersom februari är en kortare månad. TimestampAdd(SQL_TSI_MONTH, 7, TIMESTAMP‘1999-07-31 00:00:00’) I följande exempel efterfrågas den resulterande tidstämpeln när 25 minuter läggs till 2000-07-31 23:35:00. Tidstämpeln 2000-08-01 00:00:00 returneras. Lägg märke till hur tillägget av minuter leder till att även datum- och månadskomponenterna ökar. TimestampAdd(SQL_TSI_MINUTE, 25, TIMESTAMP‘2000-07-31 23:35:00’) TimeStampDiffFunktionen TimestampDiff returnerar det totala antalet angivna intervaller mellan två tidstämplar. Syntax: TimestampDiff (interval, timestamp_expression1, timestamp_expression2) där:
Om den tidstämpel som skickas till den här funktionen har värdet null returneras null som värde på funktionen. Den här funktionen fastställer först den tidstämpelkomponent som motsvarar den angivna intervallparametern. SQL_TSI_DAY motsvarar dagkomponenten och SQL_TSI_MONTH motsvarar månadskomponenten. Funktionen tittar sedan på komponenterna med högre ordningstal i de båda tidstämplarna för att beräkna det totala antalet intervall för varje tidstämpel. Om till exempel det angivna intervallet avser månadskomponenten beräknar funktionen det totala antalet månader för varje tidstämpel genom att lägga till månadskomponenten och tolv gånger årskomponenten. Slutligen subtraheras den första tidstämpelns totala antal intervall från den andra tidstämpelns totala antal intervall. Vid beräkning av differensen i antalet dagar trunkeras tidsvärden från båda tidsstämpeluttrycken i funktionen varpå datumvärdena subtraheras. Vid beräkning av differensen i veckor beräknar funktionen differensen i antal dagar och dividerar resultatet med sju innan det avrundas. Vid beräkning av differensen i kvartal beräknar funktionen differensen i antal månader och dividerar resultatet med tre innan det avrundas. Vid beräkning av differensen i år beräknas differensen i antal månader i funktionen och resultatet divideras med tolv innan det avrundas. Funktionen TimestampDiff och exempel på resultatI följande exempel efterfrågas differensen i antal dagar mellan tidstämplarna 1998-07-31 23:35:00 och 2000-04-01 14:24:00. Funktionen returnerar värdet 610. Lägg märke till att skottåret 2000 medför en dag extra. TimestampDIFF(SQL_TSI_DAY, TIMESTAMP‘1998-07-31 23:35:00’, TIMESTAMP‘2000-04-01 14:24:00’) Week_Of_QuarterReturnerar ett tal (mellan 1 och 13) som motsvarar den vecka som det angivna datumet har i kvartalet. Syntax: WEEK_OF_QUARTER (date_expression) där:
Week_Of_YearReturnerar ett tal (mellan 1 och 53) som motsvarar den vecka som det angivna datumet har under året. Syntax: WEEK_OF_YEAR (date_expression) där:
ÅrReturnerar året för ett angivet datum. Syntax: YEAR (date_expression) där:
Exempel: YEAR (CURRENT_DATE) |
Publicerat i September 2017 | Copyright © 2005, 2017, Oracle. Oracle förbehåller sig samtliga rättigheter. Legal Notices. |