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.