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

OracleのNUMTOYMINTERVAL()関数

    Oracle Databaseでは、NUMTOYMINTERVAL() 関数は、数値をINTERVAL YEAR TO MONTHに変換します 文字通り。

    構文

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

    NUMTOYMINTERVAL(n, 'interval_unit')

    n 引数は変換する番号です。

    interval_unitの値 nの単位を指定します 次の文字列値のいずれかに解決する必要があります:

    • YEAR
    • MONTH

    interval_unit 引数では大文字と小文字は区別されません。

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

    SELECT NUMTOYMINTERVAL(1, 'MONTH')
    FROM DUAL;

    結果:

    +00-01

    その年を使用するもう1つの例は次のとおりです。

    SELECT NUMTOYMINTERVAL(1, 'YEAR')
    FROM DUAL;

    結果:

    +01-00

    分数

    これは、最初の引数に小数部分が含まれているものです:

    SELECT 
        NUMTOYMINTERVAL(10.56, 'YEAR') AS "Year",
        NUMTOYMINTERVAL(10.56, 'MONTH') AS "Month"
    FROM DUAL;

    結果:

         Year     Month 
    _________ _________ 
    +10-07    +00-11    

    大文字と小文字の区別

    2番目の引数は大文字と小文字を区別しません:

    SELECT 
        NUMTOYMINTERVAL(150, 'YEAR') AS "YEAR",
        NUMTOYMINTERVAL(150, 'year') AS "year"
    FROM DUAL;

    結果:

          YEAR       year 
    __________ __________ 
    +150-00    +150-00    

    ヌル引数

    nullを渡す どちらの引数でも、結果はnullになります :

    SET NULL 'null';
    SELECT 
        NUMTOYMINTERVAL(1, null),
        NUMTOYMINTERVAL(null, 'year')
    FROM DUAL;

    結果:

       NUMTOYMINTERVAL(1,NULL)    NUMTOYMINTERVAL(NULL,'YEAR') 
    __________________________ _______________________________ 
    null                       null                           

    デフォルトでは、SQLclおよびSQL * Plusは、nullの場合は常に空白を返します。 SQL SELECTの結果として発生します 声明。

    ただし、SET NULLは使用できます 返される別の文字列を指定します。ここでは、文字列nullを指定しました 返却する必要があります。

    引数がありません

    間違った数の引数を使用して、または引数を渡さずに関数を呼び出すと、エラーが発生します:

    SELECT NUMTOYMINTERVAL()
    FROM DUAL;

    結果:

    Error starting at line : 1 in command -
    SELECT NUMTOYMINTERVAL()
    FROM DUAL
    Error at Command Line : 1 Column : 8
    Error report -
    SQL Error: ORA-00909: invalid number of arguments
    00909. 00000 -  "invalid number of arguments"
    *Cause:    
    *Action:

    1. 統計がロックされているテーブルを見つける方法

    2. 最初にEntityFrameworkコードを使用してストアドプロシージャを作成しますか?

    3. OracleCloudPlatform上のOracleDatabase12cでのOracleJDeveloper12cの使用、パート2

    4. Javaを使用してデータベース接続でMySQLタイムゾーンを変更するにはどうすればよいですか?