Oracle Databaseで日付をフォーマットする場合、RRを使用するオプションがあります。 およびYY 2桁の年を返します。
これらの2つのフォーマット要素は似ています。違いは、2桁の年の解釈方法にあります。
RRRRを使用するオプションもあります およびYYYY 4桁の年を返す場合。
例
RRを比較する例を次に示します。 およびYY フォーマット要素:
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; 結果:
RR YY _______ _______ 1981 2081
RRがわかります 81年を1981年と解釈し、YY それを2081として解釈します。
-
YYを使用する場合 、返される年は常に現在の年と同じ最初の2桁です。 -
RRを使用 、戻り値の世紀は、指定された2桁の年と現在の年の下2桁によって異なります。
Oracleのドキュメントで説明されている方法は次のとおりです。
- 指定された2桁の年が00から49の場合、
- 現在の年の最後の2桁が00から49の場合、返される年は現在の年と同じ最初の2桁になります。
- 現在の年の最後の2桁が50〜99の場合、返される年の最初の2桁は、現在の年の最初の2桁より1大きいです。
- 指定された2桁の年が50〜99の場合、
- 現在の年の最後の2桁が00から49の場合、返される年の最初の2桁は、現在の年の最初の2桁より1少ない数字です。
- 現在の年の下2桁が50〜99の場合、返される年は現在の年と同じ最初の2桁になります。
RRRR およびYYYY フォーマット要素
RRRRを比較する例を次に示します。 およびYYYY フォーマット要素:
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; 結果:
RRRR YYYY _______ _______ 1981 0081
この場合、RRRR RRと同じ年を返します しましたが、YYYY 0081年を返します。
上記の例は、TO_CHAR()の方法を知っていることを前提としています。 およびTO_DATE() 仕事。 Oracle TO_CHAR(datetime)を参照してください 関数とOracleTO_DATE() 詳細については、Oracleで機能してください。