Při formátování dat v databázi Oracle máme možnost použít RR a YY vrátit dvouciferný rok.
Tyto dva prvky formátu jsou podobné. Rozdíl je v tom, jak interpretují dvě číslice roku.
Máme také možnost použít RRRR a YYYY při vracení čtyřmístných let.
Příklad
Zde je příklad, který porovnává RR a YY prvky formátu:
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; Výsledek:
RR YY _______ _______ 1981 2081
Vidíme, že RR interpretuje rok 81 jako 1981, zatímco YY interpretuje to jako 2081.
- Při použití
YY, vrácený rok má vždy stejné první 2 číslice jako aktuální rok. - S
RR, století návratové hodnoty se liší podle zadaného dvoumístného roku a posledních dvou číslic aktuálního roku.
Zde je návod, jak to vysvětluje dokumentace Oracle:
- Pokud je zadaný dvoumístný rok 00 až 49, pak
- Pokud jsou poslední dvě číslice aktuálního roku 00 až 49, pak má vrácený rok stejné první dvě číslice jako aktuální rok.
- Pokud jsou poslední dvě číslice aktuálního roku 50 až 99, pak jsou první 2 číslice vráceného roku o 1 větší než první 2 číslice aktuálního roku.
- Pokud je zadaný dvoumístný rok 50 až 99, pak
- Pokud jsou poslední dvě číslice aktuálního roku 00 až 49, pak jsou první 2 číslice vráceného roku o 1 menší než první 2 číslice aktuálního roku.
- Pokud jsou poslední dvě číslice aktuálního roku 50 až 99, pak má vrácený rok stejné první dvě číslice jako aktuální rok.
RRRR a YYYY Formátovat prvky
Zde je příklad, který porovnává RRRR a YYYY prvky formátu:
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; Výsledek:
RRRR YYYY _______ _______ 1981 0081
V tomto případě RRRR vrátí stejný rok jako RR ano, ale YYYY vrátí rok 0081.
Výše uvedené příklady předpokládají, že víte, jak TO_CHAR() a TO_DATE() práce. Viz Oracle TO_CHAR(datetime) Funkce a Oracle TO_DATE() Pro více informací použijte funkci Oracle.