![]() |
|
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_DateRetourneert de huidige datum. De datum wordt bepaald door de computer. De waarde bevat geen tijdselement. Syntaxis: CURRENT_DATE Current_TimeRetourneert 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:
Current_TimeStampRetourneert 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:
Day_Of_QuarterRetourneert 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:
DayNameRetourneert de naam van de dag van de week (in het Engels) voor een opgegeven datum. Syntaxis: DAYNAME (date_expression) waarbij:
DayOfMonthRetourneert het getal dat overeenkomt met de dag van de maand voor een opgegeven datum. Syntaxis: DAYOFMONTH (date_expression) waarbij:
DayOfWeekRetourneert 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:
DayOfYearRetourneert het getal (tussen 1 en 366) dat overeenkomt met de dag van het jaar voor een opgegeven datum. Syntaxis: DAYOFYEAR (date_expression) waarbij:
HourRetourneert 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:
MinuteRetourneert een getal (tussen 0 en 59) dat overeenkomt met de minuut voor een opgegeven tijd. Syntaxis: MINUTE (time_expression) waarbij:
MonthRetourneert een getal (tussen 1 en 12) dat overeenkomt met de maand voor een opgegeven datum. Syntaxis: MONTH (date_expression) waarbij:
Month_Of_QuarterRetourneert 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:
MonthNameRetourneert de naam van de maand (in het Engels) voor een opgegeven datum. Syntaxis: MONTHNAME (date_expression) waarbij:
NowRetourneert 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_YearRetourneert 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:
SecondRetourneert een getal (tussen 0 en 59) dat overeenkomt met de seconden voor een opgegeven tijd. Syntaxis: SECOND (time_expression) waarbij:
TimestampAddDe 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:
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’) TimeStampDiffDe functie TimestampDiff retourneert het totaal aantal dagen van opgegeven intervallen tussen twee tijdstempels. Syntaxis: TimestampDiff (interval, timestamp_expression1, timestamp_expression2) waarbij:
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 TimestampDiffIn 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_QuarterRetourneert 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:
Week_Of_YearRetourneert 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:
JaarRetourneert het jaar voor de opgegeven datum. Syntaxis: YEAR (date_expression) waarbij:
Voorbeeld: YEAR (CURRENT_DATE) |
Gepubliceerd op augustus 2018 | Copyright © 2005, 2018, Oracle. Alle rechten voorbehouden. Legal Notices. |