Bij het formatteren van datums in Oracle Database hebben we de mogelijkheid om RR
. te gebruiken en YY
om een jaartal van twee cijfers terug te geven.
Deze twee formaatelementen zijn vergelijkbaar. Het verschil zit 'm in de manier waarop ze jaren van twee cijfers interpreteren.
We hebben ook de mogelijkheid om RRRR
. te gebruiken en YYYY
bij het teruggeven van viercijferige jaren.
Voorbeeld
Hier is een voorbeeld dat de RR
. vergelijkt en YY
formaat elementen:
SELECT
TO_CHAR(TO_DATE('20-Dec-81', 'DD-Mon-RR'), 'YYYY') AS "RR",
TO_CHAR(TO_DATE('20-Dec-81', 'DD-Mon-YY'), 'YYYY') AS "YY"
FROM DUAL;
Resultaat:
RR YY _______ _______ 1981 2081
We kunnen zien dat RR
interpreteert het jaar 81 als 1981, terwijl YY
interpreteert het als 2081.
- Bij gebruik van
YY
, heeft het geretourneerde jaar altijd dezelfde eerste 2 cijfers als het huidige jaar. - Met
RR
, varieert de eeuw van de geretourneerde waarde afhankelijk van het opgegeven jaar van twee cijfers en de laatste twee cijfers van het huidige jaar.
Zo legt de Oracle-documentatie het uit:
- Als het opgegeven jaartal van twee cijfers 00 tot 49 is, dan
- Als de laatste twee cijfers van het huidige jaar 00 tot 49 zijn, heeft het geretourneerde jaar dezelfde eerste twee cijfers als het huidige jaar.
- Als de laatste twee cijfers van het huidige jaar 50 tot 99 zijn, zijn de eerste 2 cijfers van het geretourneerde jaar 1 groter dan de eerste 2 cijfers van het huidige jaar.
- Als het opgegeven jaartal van twee cijfers 50 tot 99 is, dan
- Als de laatste twee cijfers van het huidige jaar 00 tot 49 zijn, dan zijn de eerste 2 cijfers van het geretourneerde jaar 1 minder dan de eerste 2 cijfers van het huidige jaar.
- Als de laatste twee cijfers van het huidige jaar 50 tot 99 zijn, heeft het geretourneerde jaar dezelfde eerste twee cijfers als het huidige jaar.
De RRRR
en YYYY
Opmaakelementen
Hier is een voorbeeld dat de RRRR
. vergelijkt en YYYY
formaat elementen:
SELECT
TO_CHAR(TO_DATE('20-Dec-81', 'DD-Mon-RRRR'), 'YYYY') AS "RRRR",
TO_CHAR(TO_DATE('20-Dec-81', 'DD-Mon-YYYY'), 'YYYY') AS "YYYY"
FROM DUAL;
Resultaat:
RRRR YYYY _______ _______ 1981 0081
In dit geval RRRR
geeft hetzelfde jaar terug dat RR
deed, maar YYYY
geeft het jaar 0081 terug.
De bovenstaande voorbeelden gaan ervan uit dat u weet hoe TO_CHAR()
en TO_DATE()
het werk. Zie Oracle TO_CHAR(datetime)
Functie en Oracle TO_DATE()
Functie in Oracle voor meer info.