Afdrukken      PDF-versie openen van online-help


Vorig onderwerp

Volgend onderwerp

Agendafuncties (datum en tijd)

Met de agendafuncties voor datum en tijd worden gegevens in gegevenstypen voor datums, tijden en tijdstempels gemanipuleerd. (Het gegevenstype tijdstempels is een combinatie van datum en tijd.)

Alle datumfuncties voldoen aan de ISO 8601-normering. Deze optie is met name van toepassing op functies als Week_Of_Year en Week_Of_Quarter waarbij de eerste week van het jaar de eerste volledige week is waarin een donderdag voorkomt. Voor gedetailleerde informatie over de manier waarop deze datumfuncties worden berekend, verwijzen wij u naar de ISO 8601-standaard.

Current_Date

Retourneert de huidige datum. De datum wordt bepaald door de computer. De waarde bevat geen tijdselement.

Syntaxis:

CURRENT_DATE

Current_Time

Retourneert de huidige tijd. De tijd wordt bepaald door de computer. De waarde bevat geen datumelement.

Opmerking: met deze functie wordt de huidige tijd verkregen op het moment dat het rapport wordt uitgevoerd. Als u deze functie gebruikt met een onderwerpgebied voor analyse, is in cache opslaan niet mogelijk, waardoor de prestaties afnemen.

Syntaxis:

CURRENT_TIME (n)

waarbij:

n

Elk geheel getal dat het aantal decimalen aangeeft waarmee de fractionele seconde wordt weergegeven. Het argument is optioneel; de functie retourneert het standaardaantal decimalen wanneer geen argument wordt opgegeven.

Current_TimeStamp

Retourneert de huidige datum-/tijdstempel. De tijdstempel wordt bepaald door de computer.

Opmerking: met deze functie wordt de huidige tijd verkregen op het moment dat het rapport wordt uitgevoerd. Als u deze functie gebruikt met een onderwerpgebied voor analyse, is in cache opslaan niet mogelijk, waardoor de prestaties afnemen.

Syntaxis:

CURRENT_TIMESTAMP (n)

waarbij:

n

Elk geheel getal dat het aantal decimalen aangeeft waarmee de fractionele seconde wordt weergegeven. Het argument is optioneel; de functie retourneert het standaardaantal decimalen wanneer geen argument wordt opgegeven.

Day_Of_Quarter

Retourneert een getal (tussen 1 en 92) dat overeenkomt met de dag van het kwartaal voor de opgegeven datum.

Syntaxis:

DAY_OF_QUARTER (date_expression)

waarbij:

date_expression

Een expressie is die evalueert naar een datum.

DayName

Retourneert de naam van de dag van de week (in het Engels) voor een opgegeven datum.

Syntaxis:

DAYNAME (date_expression)

waarbij:

date_expression

Een expressie is die evalueert naar een datum.

DayOfMonth

Retourneert het getal dat overeenkomt met de dag van de maand voor een opgegeven datum.

Syntaxis:

DAYOFMONTH (date_expression)

waarbij:

date_expression

Een expressie is die evalueert naar een datum.

DayOfWeek

Retourneert een getal tussen 1 en 7, dat overeenkomt met de dag van de week voor een opgegeven datum. Hierbij staat het getal 1 voor zondag en 7 voor zaterdag.

Syntaxis:

DAYOFWEEK (date_expression)

waarbij:

date_expression

Een expressie is die evalueert naar een datum.

DayOfYear

Retourneert het getal (tussen 1 en 366) dat overeenkomt met de dag van het jaar voor een opgegeven datum.

Syntaxis:

DAYOFYEAR (date_expression)

waarbij:

date_expression

Een expressie is die evalueert naar een datum.

Hour

Retourneert een getal (tussen 0 en 23) dat overeenkomt met het uur voor een opgegeven tijd. Hierbij staat 0 bijvoorbeeld voor 00:00 uur en 23 voor 23:00 uur.

Syntaxis:

HOUR (time_expression)

waarbij:

time_expression

Een expressie die evalueert naar een tijd.

Minute

Retourneert een getal (tussen 0 en 59) dat overeenkomt met de minuut voor een opgegeven tijd.

Syntaxis:

MINUTE (time_expression)

waarbij:

time_expression

Een expressie die evalueert naar een tijd.

Month

Retourneert een getal (tussen 1 en 12) dat overeenkomt met de maand voor een opgegeven datum.

Syntaxis:

MONTH (date_expression)

waarbij:

date_expression

Een expressie is die evalueert naar een datum.

Month_Of_Quarter

Retourneert een getal (tussen 1 en 3) dat overeenkomt met de maand in het kwartaal voor een opgegeven datum.

Syntaxis:

MONTH_OF_QUARTER (date_expression)

waarbij:

date_expression

Een expressie is die evalueert naar een datum.

MonthName

Retourneert de naam van de maand (in het Engels) voor een opgegeven datum.

Syntaxis:

MONTHNAME (date_expression)

waarbij:

date_expression

Een expressie is die evalueert naar een datum.

Now

Retourneert de huidige tijdstempel. De functie NOW komt overeen met de functie CURRENT_TIMESTAMP.

Opmerking: met deze functie wordt de huidige tijd verkregen op het moment dat het rapport wordt uitgevoerd. Als u deze functie gebruikt met een onderwerpgebied voor analyse, is in cache opslaan niet mogelijk, waardoor de prestaties afnemen.

Syntaxis:

NOW ()

Quarter_Of_Year

Retourneert een getal (tussen 1 en 4) dat overeenkomt met het kwartaal van het jaar voor een opgegeven datum.

Syntaxis:

QUARTER_OF_YEAR (date_expression)

waarbij:

date_expression

Een expressie is die evalueert naar een datum.

Second

Retourneert een getal (tussen 0 en 59) dat overeenkomt met de seconden voor een opgegeven tijd.

Syntaxis:

SECOND (time_expression)

waarbij:

time_expression

Een expressie die evalueert naar een tijd.

TimestampAdd

De functie TimestampAdd voegt een opgegeven aantal intervallen toe aan een opgegeven tijdstempel. Er wordt een enkele tijdstempel geretourneerd.

Syntaxis:

TimestampAdd (interval, integer_expression, timestamp_expression)

waarbij:

interval

Het opgegeven interval. Geldige waarden zijn:

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

Een expressie die evalueert naar een geheel getal. Dit is het aantal intervallen dat wordt toegevoegd.

timestamp_expression

De tijdstempel die als basis wordt gebruikt in de berekening.

Een null-expressie van het type geheel getal of tijdstempel die wordt doorgegeven aan deze functie, resulteert in een retourwaarde van null.

In het meest eenvoudige scenario voegt deze functie slechts de waarde van het opgegeven gehele getal (integer_expression) toe aan het betreffende element van de tijdstempel, op basis van het interval. Als een week wordt toegevoegd, komt dit overeen met het toevoegen van zeven dagen, en het toevoegen van een kwartaal komt overeen met het toevoegen van drie maanden. Een negatief geheel getal resulteert in een vermindering (gaat terug in de tijd).

Bij een overschrijding van het opgegeven element (zoals meer dan 60 seconden, 24 uur, twaalf maanden, enzovoort) is het noodzakelijk een juiste hoeveelheid toe te voegen aan het volgende element. Als er bijvoorbeeld wordt toegevoegd aan het dagelement van een tijdstempel, wordt dit door de functie gezien als een overschrijding en wordt rekening gehouden met het aantal dagen in een bepaalde maand (inclusief 29 dagen voor februari in schrikkeljaren).

Als er wordt toegevoegd aan het maandelement van een tijdstempel, controleert de functie of de resulterende tijdstempel voldoende dagen heeft voor het dagelement. Als u bijvoorbeeld 1 maand toevoegt aan 31-05-2000, resulteert dit niet in 31-06-2000, omdat juni geen 31 dagen heeft. Deze functie vermindert het dagelement tot de laatste dag van de maand, 30-06-2000 in dit voorbeeld.

Een soortgelijke situatie treedt op wanneer er wordt toegevoegd aan het jaarelement van een tijdstempel die een maandelement februari heeft en een dagelement 29 (oftewel de laatste dag van februari in een schrikkeljaar). Als de resulterende tijdstempel niet in een schrikkeljaar valt, vermindert de functie het dagelement tot 28.

Hier volgen enkele voorbeelden van de functie TimestampAdd:

In het volgende codevoorbeeld wordt de resulterende tijdstempel berekend wanneer 3 dagen worden toegevoegd aan 27-02-2000 14:30:00. Aangezien 2000 een schrikkeljaar is, wordt hiermee een tijdstempel geretourneerd van 01-03-2000 14:30:00.

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

In het volgende codevoorbeeld wordt de resulterende tijdstempel berekend wanneer 7 maanden worden toegevoegd aan 31-7-1999 0:0:0. Hiermee wordt een tijdstempel geretourneerd van 29-02-2000 00:00:00. Let op het verminderde dagelement vanwege de kortere maand februari.

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

In het volgende codevoorbeeld wordt de resulterende tijdstempel berekend wanneer 25 minuten worden toegevoegd aan 31-7-2000 23:35:00. Hiermee wordt een tijdstempel geretourneerd van 01-08-2000 00:00:00. Let op het doorvoeren van de overschrijding in het maandelement.

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

TimeStampDiff

De functie TimestampDiff retourneert het totaal aantal dagen van opgegeven intervallen tussen twee tijdstempels.

Syntaxis:

TimestampDiff (interval, timestamp_expression1, timestamp_expression2)

waarbij:

interval

Het opgegeven interval. Geldige waarden zijn:

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

De tijdstempel die wordt afgetrokken van de tweede tijdstempel.

timestamp_expression2

De tweede tijdstempel. Hiervan wordt de waarde van timestamp_expression1 afgehaald om het verschil te bepalen.

Een null-expressie van het type tijdstempel die wordt doorgegeven aan deze functie, resulteert in een retourwaarde van null.

Deze functie bepaalt eerst het tijdstempelelement dat overeenkomt met de opgegeven intervalparameter. SQL_TSI_DAY komt bijvoorbeeld overeen met het dagelement en SQL_TSI_MONTH komt overeen met het maandelement.

De functie controleert vervolgens van beide tijdstempels de elementen op een hoger niveau om het totaal aantal intervallen voor elke tijdstempel te berekenen. Als het opgegeven interval bijvoorbeeld overeenkomt met het maandelement, berekent de functie het totaal aantal maanden voor elke tijdstempel door het maandelement en twaalf keer het jaarelement toe te voegen.

Als laatste trekt de functie het totaal aantal intervallen van het eerste tijdstempel af van het totaal aantal intervallen van het tweede tijdstempel.

Wanneer het verschil in dagen wordt berekend, worden met de functie de tijdwaarden afgekapt van beide datum-/tijdexpressies en worden de datumwaarden van het totaal afgetrokken.

Wanneer het verschil in weken wordt berekend, wordt met de functie het verschil in dagen berekend en wordt dit door zeven gedeeld voordat wordt afgerond.

Wanneer het verschil in kwartalen wordt berekend, wordt met de functie het verschil in maanden berekend en wordt dit door drie gedeeld voordat wordt afgerond.

Wanneer het verschil in jaren wordt berekend, berekent de functie het verschil in maanden en wordt dit door twaalf gedeeld voordat wordt afgerond.

Voorbeeld van de functie TimestampDiff

In het volgende codevoorbeeld wordt het verschil in dagen berekend tussen de tijdstempels 31-7-1998 23:35:0 en 01-04-2000 14:24:00. Hiermee wordt de waarde 610 geretourneerd. Let op dat het schrikkeljaar 2000 resulteert in een extra dag.

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

Week_Of_Quarter

Retourneert een getal (tussen 1 en 13) dat overeenkomt met de week van het kwartaal voor de opgegeven datum.

Syntaxis:

WEEK_OF_QUARTER (date_expression)

waarbij:

date_expression

Een expressie is die evalueert naar een datum.

Week_Of_Year

Retourneert een getal (tussen 1 en 53) dat overeenkomt met de week van het jaar voor de opgegeven datum.

Syntaxis:

WEEK_OF_YEAR (date_expression)

waarbij:

date_expression

Een expressie is die evalueert naar een datum.

Jaar

Retourneert het jaar voor de opgegeven datum.

Syntaxis:

YEAR (date_expression)

waarbij:

date_expression

Een expressie is die evalueert naar een datum.

Voorbeeld:

YEAR (CURRENT_DATE)


Gepubliceerd op augustus 2018 Copyright © 2005, 2018, Oracle. Alle rechten voorbehouden. Legal Notices.