sql >> データベース >  >> RDS >> Oracle

OracleのRRとYY

    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)を参照してください 関数とOracle TO_DATE() 詳細については、Oracleで機能してください。


    1. SQLServerテーブルへのリスト<>の挿入

    2. MySQLでデータベース内のすべてのテーブルのサイズを確認する方法

    3. SQLステートメントのバックティックと角括弧の違いは何ですか?

    4. データベースクエリとは何ですか?