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

Oracleで日時値から秒数を返す方法

    Oracle Databaseを使用する場合は、TO_CHAR(datetime)を使用できます。 分数秒を含む日時値のさまざまな部分を返す関数。

    日時の値から秒の部分を返すには、FFを使用します。 フォーマット要素。

    デモンストレーションの例を次に示します。

    SELECT 
        TO_CHAR(TIMESTAMP '2035-01-01 10:15:37.123456789', 'FF')
    FROM DUAL;

    結果:

    123456789

    FFに数値を追加して、精度を制限することもできます。 パート:

    SELECT 
        TO_CHAR(TIMESTAMP '2035-01-01 10:15:37.123456789', 'FF5')
    FROM DUAL;

    結果:

    12345

    番号は1にすることができます 9まで 。

    秒の部分を追加

    上記の例では、秒の小数部のみを返し、他には何も返しませんでした。

    秒の部分と小数秒を含めることができます。これを行うには、SSを使用します 。 Xも使用できます 基数文字(整数部分と小数部分を区切るために使用される記号)を指定するには:

    SELECT 
        TO_CHAR(TIMESTAMP '2035-01-01 10:15:37.123456789', 'SSXFF')
    FROM DUAL;

    結果:

    37.123456789

    独自の基数文字を明示的に指定することもできますが、たとえば、終止符(.) )、X format要素は、さまざまな言語/地域間での移植に役立ちます。

    上記の例を実行すると、NLS_TERRITORY パラメータがAUSTRALIAに設定されました 、その結果、基数文字が終止符になりました。

    NLS_TERRITORYを変更するとどうなりますか GERMANYへのパラメータ :

    ALTER SESSION SET NLS_TERRITORY = 'GERMANY';
    
    SELECT 
        TO_CHAR(TIMESTAMP '2035-01-01 10:15:37.123456789', 'SSXFF')
    FROM DUAL;

    結果:

    37,123456789

    これで、基数文字はコンマになります。

    実際にはNLS_NUMERIC_CHARACTERS 基数文字に使用される文字を指定するパラメーター。ただし、NLS_TERRITORYを変更する パラメータは、NLS_NUMERIC_CHARACTERSを暗黙的に変更します パラメータ。 NLS_NUMERIC_CHARACTERSを明示的に更新することもできます 必要に応じてパラメータ。この場合、NLS_TERRITORY パラメータは変更されません。

    日時値のフォーマットに使用できるフォーマット要素の完全なリストについては、Oracleの日時フォーマット要素のリストを参照してください。


    1. OracleでORDERを使用してINSERT

    2. PostgreSQLを使用してデータベースを切り替える方法

    3. 大規模なIMDBモデルを作成しようとしたときの失敗のトラブルシューティング

    4. PostgreSQLスキーマ/Djangoを使用した名前空間