Podczas formatowania dat w Oracle Database mamy możliwość użycia YY i YY zwrócić dwucyfrowy rok.
Te dwa elementy formatu są podobne. Różnica polega na tym, jak interpretują dwucyfrowe lata.
Mamy również możliwość użycia YYYY i YYYY przy zwrocie lat czterocyfrowych.
Przykład
Oto przykład porównujący YY i YY elementy formatu:
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; Wynik:
RR YY _______ _______ 1981 2081
Widzimy, że YY interpretuje rok 81 jako 1981, podczas gdy YY interpretuje to jako 2081.
- Gdy używasz
YY, zwrócony rok ma zawsze te same pierwsze 2 cyfry co rok bieżący. - Z
YY, wiek wartości zwracanej różni się w zależności od podanego dwucyfrowego roku i dwóch ostatnich cyfr bieżącego roku.
Oto, jak wyjaśnia to dokumentacja Oracle:
- Jeżeli podany dwucyfrowy rok wynosi od 00 do 49, to
- Jeśli ostatnie dwie cyfry bieżącego roku to 00 do 49, to zwrócony rok ma te same pierwsze dwie cyfry co rok bieżący.
- Jeśli ostatnie dwie cyfry bieżącego roku to od 50 do 99, to pierwsze 2 cyfry zwróconego roku są o 1 większe niż pierwsze 2 cyfry bieżącego roku.
- Jeśli podany dwucyfrowy rok wynosi od 50 do 99, to
- Jeśli ostatnie dwie cyfry bieżącego roku to 00-49, to pierwsze 2 cyfry zwróconego roku są o 1 mniejsze niż pierwsze 2 cyfry bieżącego roku.
- Jeśli ostatnie dwie cyfry bieżącego roku to od 50 do 99, to zwrócony rok ma te same dwie pierwsze cyfry co rok bieżący.
YYYY i YYYY Formatuj elementy
Oto przykład porównujący YYYY i YYYY elementy formatu:
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; Wynik:
RRRR YYYY _______ _______ 1981 0081
W tym przypadku YYYY zwraca ten sam rok, w którym YY tak, ale YYYY zwraca rok 0081.
Powyższe przykłady zakładają, że wiesz, jak TO_CHAR() i TO_DATE() praca. Zobacz Oracle TO_CHAR(datetime) Funkcja i Oracle TO_DATE() Funkcja w Oracle, aby uzyskać więcej informacji.