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

Oracleセッションで日付形式を変更する方法

    日付を返す関数を使用する場合、Oracle Databaseは、NLS_DATE_FORMATの値に基づいてこれらの日付を返します。 パラメータ。

    NLS_TIMESTAMP_FORMATもあります パラメータとNLS_TIMESTAMP_TZ_FORMAT パラメータ。どちらも、個別に指定できる日時形式のマスクがあります。

    これらのパラメータはすべて、NLS_TERRITORYから派生したデフォルト値を持っています パラメータ(デフォルトでは、オペレーティングシステムに依存します)。

    したがって、セッションの日付形式を変更するには、NLS_TERRITORYを更新することができます。 パラメータ、または各パラメータを個別に明示的に更新します。

    この記事では、これらの値を確認および変更し、結果を表示する例を示します。

    初期設定を確認する

    まず、 NLS_DATE_FORMATの現在の設定を確認しましょう パラメータ:

     SELECT
        PARAMETER,
        VALUE
    FROM V$NLS_PARAMETERS
    WHERE PARAMETER IN (
        'NLS_TERRITORY',
        'NLS_DATE_FORMAT',
        'NLS_TIMESTAMP_FORMAT',
        'NLS_TIMESTAMP_TZ_FORMAT'
        ); 

    結果:

    パラメータ値___________________________________________________________NLS_TERRITORY AUSTRALIA NLS_DATE_FORMAT DD / MON / RR NLS_TIMESTAMP_FORMAT DD / MON / RR HH12:MI:SSXFF AM NLS_TIMESTAMP_TZ_FORMAT DD / MON / RR HH12:MI:RSSFF 

    NLS_TERRITORYの値 パラメータはAUSTRALIAです 、したがって、さまざまな日時パラメータはオーストラリアのデフォルトの形式モデルを使用します。

    この値は、特定の関数を使用するときに日付がどのようにフォーマットされるかに影響します。たとえば、SYSDATEの使用例を次に示します。 現在の日付を返すには:

     SELECT SYSDATE
    FROM DUAL; 

    結果:

     04 / AUG / 21 

    設定の変更

    ALTER SESSIONを使用できます これらのパラメータの設定を変更するステートメント。

    これらの各パラメータを個別に変更するか、NLS_TERRITORYを変更するオプションがあります。 パラメータ。これらの各パラメータを暗黙的に自動的に更新します。

    NLS_TERRITORYを変更します パラメータ

    NLS_TERRITORYを変更する例を次に示します。 パラメータ:

     ALTER SESSION SET NLS_TERRITORY = 'AMERICA'; 

    結果:

    セッションが変更されました。

    新しい値を確認しましょう:

     SELECT
        PARAMETER,
        VALUE
    FROM V$NLS_PARAMETERS
    WHERE PARAMETER IN (
        'NLS_TERRITORY',
        'NLS_DATE_FORMAT',
        'NLS_TIMESTAMP_FORMAT',
        'NLS_TIMESTAMP_TZ_FORMAT'
        ); 

    結果:

    パラメータ値_________________________________________________________NLS_TERRITORY AMERICA NLS_DATE_FORMAT DD-MON-RR NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM NLS_TIMESTAMP_TZ_FORMAT DD-MON 

    そのため、地域が更新されただけでなく、さまざまな日時パラメータも更新されたことがわかります。

    NLS_DATE_FORMATだけを変更します パラメータ

    NLS_DATE_FORMATを更新する例を次に示します。 パラメータ:

     ALTER SESSION SET NLS_DATE_FORMAT = 'rr-mm-dd'; 

    結果:

    セッションが変更されました。

    新しい値を確認しましょう:

     SELECT
        PARAMETER,
        VALUE
    FROM V$NLS_PARAMETERS
    WHERE PARAMETER IN (
        'NLS_TERRITORY',
        'NLS_DATE_FORMAT',
        'NLS_TIMESTAMP_FORMAT',
        'NLS_TIMESTAMP_TZ_FORMAT'
        ); 

    結果:

    パラメータ値_________________________________________________________NLS_TERRITORY AMERICA NLS_DATE_FORMAT rr-mm-dd NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM NLS_TIMESTAMP_TZ_FORMAT DD-MON 

    予想どおり、NLS_DATE_FORMATのみ パラメータが新しい形式に変更されました。その他は変更されません。

    ここで、SYSDATEを実行すると 、日付は新しい形式で返されますが、SYSTIMESTAMP NLS_TIMESTAMP_TZ_FORMATを使用して返します 変更されていない形式:

     SELECT 
        SYSDATE,
        SYSTIMESTAMP
    FROM DUAL; 

    結果:

     SYSDATE SYSTIMESTAMP ___________ _________________________________________ 21-08-09 09-AUG-21 07.22.35.402453000 PM -04:00 

    1. Access 2016 For Dummies Cheat Sheet

    2. PostgreSQL:クエリの行数を「分単位」で実行

    3. SQL ServerのLOG()の例

    4. Androidデバイスのデータ/データフォルダにアクセスするにはどうすればよいですか?