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

Oracleで日付から日を取得する2つの方法

    以下は、OracleDatabaseの日付から日を返すために使用できる2つの関数です。

    EXTRACT() 機能

    EXTRACT(datetime) 関数は、日時値からさまざまな日時部分を抽出するために使用されます。これには日も含まれます。

    次に例を示します:

    SELECT EXTRACT(DAY FROM DATE '2037-10-25')
    FROM DUAL;

    結果:

    25

    DAY 日付から日の部分を抽出するキーワード。関連するキーワードに変更することで、他の日付部分を取得できます。たとえば、YEARMONTHHOURMINUTE 、など。

    TIMESTAMPなどの他の日時値で関数を使用することもできます。 、など。

    TO_CHAR(datetime) 機能

    TO_CHAR(datetime)を使用することもできます 日付から日を取得するための代替方法として機能します。

    この関数は、最初の引数として日時または間隔の値を受け入れ、2番目の引数としてフォーマットモデルを受け入れます。次に、関数は値をVARCHAR2のデータ型に変換します 指定された形式で。

    formatモデルは、datetime/interval値を返すフォーマットを指定します。フォーマットモデルは、1つ以上のフォーマット要素で構成されます。これにより、目的の形式を反映するように慎重に結果を作成できます。

    日のみを返したい場合は、フォーマット要素の1つを使用して日を抽出できます。

    月の日

    月の日(1〜31の間)を取得するには、DDを使用します フォーマット要素:

    SELECT TO_CHAR(DATE '2037-10-03', 'DD')
    FROM DUAL;

    結果:

    03

    終日の名前

    完全な日の名前を取得するには、DAYを使用します :

    SELECT TO_CHAR(DATE '2037-10-03', 'DAY')
    FROM DUAL;

    結果:

    SATURDAY

    短い日の名前

    省略された日の名前を取得するには、DYを使用します :

    SELECT TO_CHAR(DATE '2037-10-03', 'DY')
    FROM DUAL;

    結果:

    SAT

    年の日

    年間通算日(1〜366)を取得するには、DDDを使用します フォーマット要素:

    SELECT TO_CHAR(DATE '2037-10-03', 'DDD')
    FROM DUAL;

    結果:

    276

    曜日

    曜日(1〜7)を取得するには、Dを使用します フォーマット要素:

    SELECT TO_CHAR(DATE '2037-10-03', 'D')
    FROM DUAL;

    結果:

    6

    このフォーマット要素は、セッションのNLSテリトリーによって異なります。 システムのNLS_TERRITORYの値 パラメータはAUSTRALIAです 、したがって、土曜日は週の6日目と見なされます。

    NLS_TERRITORYの値を変更するとどうなりますか AMERICAへのパラメータ 同じクエリをもう一度実行します:

    ALTER SESSION SET NLS_TERRITORY = 'AMERICA';
    SELECT TO_CHAR(DATE '2037-10-03', 'D')
    FROM DUAL;

    結果:

    7

    今回は土曜日が週の7日目と見なされます。


    1. OracleSQL句の評価順序

    2. MySQLの基本的なデータベース管理コマンド–パートI

    3. MySQL高可用性フレームワークの説明–パートIII:障害シナリオ

    4. Java9でのモジュールAPIの調査