Heim >Datenbank >MySQL-Tutorial >Was ist der Unterschied zwischen den Jahresformaten „JJJJ' und „RRRR' in Oracle SQL?

Was ist der Unterschied zwischen den Jahresformaten „JJJJ' und „RRRR' in Oracle SQL?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-27 21:13:10649Durchsuche

What's the Difference Between 'YYYY' and 'RRRR' Year Formats in Oracle SQL?

Unterscheidung der Formate „YYYY“ und „RRRR“ in Oracle SQL

In Oracle SQL gibt es sowohl das Format „YYYY“ als auch „RRRR“. stellen die Jahreskomponente eines Datums dar. Es gibt jedoch einen subtilen Unterschied zwischen den beiden:

Das Format „JJJJ“ stellt das Jahr als vierstellige Ganzzahl dar. Der angegebene Jahreswert wird immer als vollständiger vierstelliger Jahreswert betrachtet, unabhängig von seiner Länge.

Andererseits behandelt das Format „RRRR“ zweistellige Jahreswerte unterschiedlich. Wenn eine zweistellige Jahreszahl (z. B. 87) angegeben wird, prüft „RRRR“ die ersten beiden Ziffern der aktuellen Jahreszahl. Wenn die angegebene zweistellige Jahreszahl zwischen 00 und 49 liegt, gilt sie als Teil des aktuellen Jahrhunderts. Wenn umgekehrt die zweistellige Jahreszahl zwischen 50 und 99 liegt, interpretiert „RRRR“ sie als zum vorherigen Jahrhundert gehörend.

Um diesen Unterschied zu veranschaulichen, betrachten Sie das folgende Beispiel:

select trunc(to_date('27-Jul-1987'),'YYYY') FROM dual;

In diesem Fall lautet das Ergebnis „1987“, da „YYYY“ erwartet, dass das Jahr vollständig vierstellig dargestellt wird Ganzzahl.

Wenn wir nun das Format „RRRR“ verwenden:

select trunc(to_date('27-Jul-1987'),'RRRR') FROM dual;

Das Ergebnis wird ebenfalls „1987“ sein, da die zweistellige Jahreszahl „87“ in die aktuelle Zahl fällt Jahrhundert (d. h. die ersten beiden Ziffern des aktuellen Jahres).

Wenn wir jedoch den Jahreswert in ein zweistelliges Jahr im vorherigen Jahrhundert ändern, die Ergebnisse unterscheiden sich:

select trunc(to_date('27-Jul-47'),'YYYY') FROM dual;

Diese Abfrage gibt „0047“ zurück, da „YYYY“ das angegebene Jahr immer als vierstellige Ganzzahl interpretiert.

select trunc(to_date('27-Jul-47'),'RRRR') FROM dual;

Im Gegensatz dazu „RRRR ' interpretiert die zweistellige Jahreszahl „47“ als zum vorherigen Jahrhundert gehörend und gibt „1947“ zurück.

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen den Jahresformaten „JJJJ' und „RRRR' in Oracle SQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn