Beim Formatieren von Datumsangaben in Oracle Database haben wir die Möglichkeit, RR
zu verwenden und YY
um ein zweistelliges Jahr zurückzugeben.
Diese beiden Formatelemente sind ähnlich. Der Unterschied besteht darin, wie sie zweistellige Jahreszahlen interpretieren.
Wir haben auch die Möglichkeit, RRRR
zu verwenden und YYYY
bei der Rückgabe von vierstelligen Jahreszahlen.
Beispiel
Hier ist ein Beispiel, das den RR
vergleicht und YY
Formatelemente:
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;
Ergebnis:
RR YY _______ _______ 1981 2081
Wir können diesen RR
sehen interpretiert das Jahr 81 als 1981, während YY
interpretiert es als 2081.
- Bei Verwendung von
YY
, hat das zurückgegebene Jahr immer die gleichen ersten 2 Ziffern wie das aktuelle Jahr. - Mit
RR
, variiert das Jahrhundert des Rückgabewerts entsprechend der angegebenen zweistelligen Jahreszahl und den letzten beiden Ziffern des aktuellen Jahres.
So erklärt es die Oracle-Dokumentation:
- Wenn das angegebene zweistellige Jahr 00 bis 49 ist, dann
- Wenn die letzten beiden Ziffern des aktuellen Jahres 00 bis 49 sind, hat das zurückgegebene Jahr dieselben ersten beiden Ziffern wie das aktuelle Jahr.
- Wenn die letzten beiden Ziffern des aktuellen Jahres 50 bis 99 sind, dann sind die ersten 2 Ziffern des zurückgegebenen Jahres um 1 größer als die ersten 2 Ziffern des aktuellen Jahres.
- Wenn die angegebene zweistellige Jahreszahl 50 bis 99 ist, dann
- Wenn die letzten beiden Ziffern des aktuellen Jahres 00 bis 49 sind, dann sind die ersten 2 Ziffern des zurückgegebenen Jahres um 1 kleiner als die ersten 2 Ziffern des aktuellen Jahres.
- Wenn die letzten beiden Ziffern des aktuellen Jahres 50 bis 99 sind, hat das zurückgegebene Jahr dieselben ersten beiden Ziffern wie das aktuelle Jahr.
Der RRRR
und YYYY
Formatelemente
Hier ist ein Beispiel, das den RRRR
vergleicht und YYYY
Formatelemente:
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;
Ergebnis:
RRRR YYYY _______ _______ 1981 0081
In diesem Fall RRRR
gibt dasselbe Jahr zurück wie RR
tat, aber YYYY
gibt das Jahr 0081 zurück.
Die obigen Beispiele setzen voraus, dass Sie wissen, wie TO_CHAR()
funktioniert und TO_DATE()
Arbeit. Siehe Oracle TO_CHAR(datetime)
Funktion und Oracle TO_DATE()
Funktion in Oracle für weitere Informationen.