När vi formaterar datum i Oracle Database har vi möjlighet att använda RR och YY för att returnera ett tvåsiffrigt årtal.
Dessa två formatelement liknar varandra. Skillnaden ligger i hur de tolkar tvåsiffriga årtal.
Vi har också möjlighet att använda RRRR och YYYY när du returnerar fyrsiffriga årtal.
Exempel
Här är ett exempel som jämför RR och YY formatelement:
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; Resultat:
RR YY _______ _______ 1981 2081
Vi kan se att RR tolkar år 81 som 1981, medan YY tolkar det som 2081.
- När du använder
YY, har det returnerade året alltid samma första två siffror som det aktuella året. - Med
RR, århundradet för returvärdet varierar beroende på det angivna tvåsiffriga året och de två sista siffrorna i det aktuella året.
Så här förklarar Oracle-dokumentationen det:
- Om det angivna tvåsiffriga året är 00 till 49, då
- Om de två sista siffrorna i innevarande år är 00 till 49, har det returnerade året samma första två siffror som innevarande år.
- Om de två sista siffrorna i det aktuella året är 50 till 99, är de två första siffrorna i det returnerade året 1 större än de två första siffrorna i det aktuella året.
- Om det angivna tvåsiffriga året är 50 till 99,
- Om de två sista siffrorna i det aktuella året är 00 till 49, är de två första siffrorna i det returnerade året 1 mindre än de två första siffrorna i det aktuella året.
- Om de två sista siffrorna i innevarande år är 50 till 99, har det returnerade året samma första två siffror som innevarande år.
RRRR och YYYY Formatera element
Här är ett exempel som jämför RRRR och YYYY formatelement:
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; Resultat:
RRRR YYYY _______ _______ 1981 0081
I det här fallet, RRRR returnerar samma år som RR gjorde, men YYYY returnerar år 0081.
Exemplen ovan förutsätter att du vet hur TO_CHAR() och TO_DATE() arbete. Se Oracle TO_CHAR(datetime) Funktion och Oracle TO_DATE() Funktion i Oracle för mer information.