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

2Oracleの日時値から秒を返す関数

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

    EXTRACT() 機能

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

    次に例を示します:

    SELECT 
        EXTRACT(SECOND FROM TIMESTAMP '2035-01-01 10:15:37')
    FROM DUAL;

    結果:

    37

    SECOND 日時値から秒の部分を抽出するキーワード。これには、秒の一部が含まれます:

    SELECT 
        EXTRACT(
            SECOND FROM TIMESTAMP '2035-01-01 10:15:37.123456789'
            )
    FROM DUAL;

    結果:

    37.123456789

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

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

    TO_CHAR(datetime) 機能

    TO_CHAR(datetime)を使用することもできます 日時値から秒コンポーネントを取得するための代替メソッドとして機能します。

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

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

    秒のみを返したい場合は、そのコンポーネントを返すフォーマット要素の1つを使用できます。

    日時値から秒コンポーネントを返すときに使用できるいくつかの異なるフォーマット要素があります。

    最も明白なものはSSです フォーマット要素:

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

    結果:

    37

    ご覧のとおり、SS format要素は秒の部分のみを返しますが、小数秒は返しません。

    フラクショナル秒

    分数秒を含める場合は、FFを使用できます。 フォーマット要素。 Xも使用できます 基数文字(整数部分と小数部分を区切るために使用される記号)を指定するには:

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

    結果:

    37.123456789

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

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

    結果:

    37.12345

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

    独自の基数文字を明示的に指定することもできますが、たとえば、終止符(.) )、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

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

    真夜中過ぎの秒数

    SSSSSを使用できます 真夜中過ぎの秒を返すには:

    SELECT 
        TO_CHAR(TIMESTAMP '2035-01-01 00:01:05', 'SSSSS')
    FROM DUAL;

    結果:

    00065

    1. Oracle Cloudの内訳–OCIでのデータベースホスティングコスト

    2. MariaDB(レプリケーションとMariaDBクラスター)を使用したMoodleの高可用性データベースの構築

    3. データベースからcsvファイルにテーブルをエクスポートします

    4. mysqliプリペアドステートメントでnullを使用する