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

OracleのEXTRACT(日時)関数

    Oracle Databaseでは、EXTRACT(datetime) 関数は、日時式または間隔式から指定された日時フィールドの値を抽出して返します。

    構文

    構文は次のようになります:

    EXTRACT( { YEAR
             | MONTH
             | DAY
             | HOUR
             | MINUTE
             | SECOND
             | TIMEZONE_HOUR
             | TIMEZONE_MINUTE
             | TIMEZONE_REGION
             | TIMEZONE_ABBR
             }
             FROM { expr }
           )

    exprの場所 は、要求されたフィールドと互換性のある日時または間隔のデータ型に評価される式です。

    expr 引数はANSI日時データ型として扱われます。

    例1

    関数を示す例を次に示します。

    SELECT EXTRACT(YEAR FROM DATE '2027-10-03')
    FROM DUAL;

    結果:

    2027

    例2

    TIMESTAMPから秒とマイクロ秒を抽出する例を次に示します。 値:

    SELECT 
        EXTRACT(SECOND FROM TIMESTAMP '2027-10-15 23:10:57.98321 +04:00') AS Result
    FROM DUAL;

    結果:

    57.98321

    間隔

    間隔リテラルから年を抽出する例を次に示します。

    SELECT EXTRACT(YEAR FROM INTERVAL '25-3' YEAR TO MONTH)
    FROM DUAL;

    結果:

    25

    間違ったフィールドを抽出しようとしています

    指定された値に存在しないフィールドを抽出しようとすると、次のようになります。

    SELECT 
        EXTRACT(SECOND FROM DATE '2027-10-15') AS Result
    FROM DUAL;

    結果:

    Error starting at line : 1 in command -
    SELECT 
        EXTRACT(SECOND FROM DATE '2027-10-15') AS Result
    FROM DUAL
    Error at Command Line : 2 Column : 25
    Error report -
    SQL Error: ORA-30076: invalid extract field for extract source
    30076. 00000 -  "invalid extract field for extract source"
    *Cause:    The extract source does not contain the specified extract field.
    *Action:

    すべてのデータ型からすべての日付部分を抽出できるわけではありません。特定のデータ型ごとに受け入れられる日付部分については、Oracleのドキュメントを参照してください。


    1. GoogleBigQueryODBCドライバー

    2. Windows認証を使用したクロスドメインSQLServerログイン

    3. SQL Server(T-SQL)でのCHARINDEX()関数のしくみ

    4. データベースの再編成–なぜそれらが重要なのか