Skriv ut      Öppna PDF-version av onlinehjälpen


Föregående ämne

Nästa ämne

Funktioner för kalenderdatum och kalendertid

Funktionerna 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_Date

Returnerar dagens datum. Datumet hämtas från den dator där Oracle CRM On Demand Answers körs. Värdet innehåller inte tidskomponenten.

Syntax:

CURRENT_DATE

Current_Time

Returnerar aktuell tid. Tiden hämtas från den dator där Oracle CRM On Demand Answers körs. Värdet innehåller inte datumkomponenten.

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:

n

Ett heltal som anger med hur många siffrors noggrannhet som delar av en sekund ska visas. Argumentet är valfritt och funktionen returnerar standardprecisionen om inget argument anges.

Current_TimeStamp

Returnerar aktuellt datum/tidstämpel. Tidstämpeln hämtas från den dator där Oracle CRM On Demand Answers körs.

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:

n

Ett heltal som anger med hur många siffrors noggrannhet som delar av en sekund ska visas. Argumentet är valfritt och funktionen returnerar standardprecisionen om inget argument anges.

Day_Of_Quarter

Returnerar 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:

date_expression

Ett uttryck som resulterar i ett datum.

DayName

Returnerar namnet på veckodagen (på engelska) för ett angivet datum.

Syntax:

DAYNAME (date_expression)

där:

date_expression

Ett uttryck som resulterar i ett datum.

DayOfMonth

Returnerar det nummer som det angivna datumet har i månaden.

Syntax:

DAYOFMONTH (date_expression)

där:

date_expression

Ett uttryck som resulterar i ett datum.

DayOfWeek

Returnerar 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:

date_expression

Ett uttryck som resulterar i ett datum.

DayOfYear

Returnerar ett tal (mellan 1 och 366) som motsvarar det nummer som det angivna datumet har på året.

Syntax:

DAYOFYEAR (date_expression)

där:

date_expression

Ett uttryck som resulterar i ett datum.

Timme

Returnerar 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:

time_expression

Ett uttryck som resulterar i en tidpunkt.

Minut

Returnerar ett tal (mellan 0 och 59) som motsvarar minuterna för den angivna tidpunkten.

Syntax:

MINUTE (time_expression)

där:

time_expression

Ett uttryck som resulterar i en tidpunkt.

Månad

Returnerar ett tal (mellan 1 och 12) som motsvarar månaden för det angivna datumet.

Syntax:

MONTH (date_expression)

där:

date_expression

Ett uttryck som resulterar i ett datum.

Month_Of_Quarter

Returnerar 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:

date_expression

Ett uttryck som resulterar i ett datum.

MonthName

Returnerar namnet på månaden (på engelska) för ett angivet datum.

Syntax:

MONTHNAME (date_expression)

där:

date_expression

Ett uttryck som resulterar i ett datum.

Nu

Returnerar 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_Year

Returnerar 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:

date_expression

Ett uttryck som resulterar i ett datum.

Sekund

Returnerar ett tal (mellan 0 och 59) som motsvarar sekunderna för den angivna tidpunkten.

Syntax:

SECOND (time_expression)

där:

time_expression

Ett uttryck som resulterar i en tidpunkt.

TimestampAdd

Funktionen 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:

interval

Det angivna intervallet. Följande värden är giltiga:

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

Ett uttryck som motsvarar ett heltal. Det är det antal intervaller som ska läggas till.

timestamp_expression

Den tidstämpel som används som utgångspunkt för beräkningen.

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’)

TimeStampDiff

Funktionen TimestampDiff returnerar det totala antalet angivna intervaller mellan två tidstämplar.

Syntax:

TimestampDiff (interval, timestamp_expression1, timestamp_expression2)

där:

interval

Det angivna intervallet. Följande värden är giltiga:

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

Den tidstämpel som ska subtraheras från den andra tidstämpeln.

timestamp_expression2

Den andra tidstämpeln. timestamp_expression1 dras bort från den här tidstämpeln för att fastställa differensen.

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å resultat

I 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_Quarter

Returnerar 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:

date_expression

Ett uttryck som resulterar i ett datum.

Week_Of_Year

Returnerar 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:

date_expression

Ett uttryck som resulterar i ett datum.

År

Returnerar året för ett angivet datum.

Syntax:

YEAR (date_expression)

där:

date_expression

Ett uttryck som resulterar i ett datum.

Exempel:

YEAR (CURRENT_DATE)


Publicerat i Oktober 2016 Copyright © 2005, 2016, Oracle. Oracle förbehåller sig samtliga rättigheter. Legal Notices.