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

OracleのNEW_TIME()関数

    Oracle Databaseでは、NEW_TIME() 関数は、日付を指定されたタイムゾーンから別の指定されたタイムゾーンに変換し、結果を返します。

    構文

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

    NEW_TIME(date, timezone1, timezone2)

    したがって、この関数はタイムゾーン timezone2の日付と時刻を返します。 タイムゾーンの日時timezone1 dateです

    この関数を使用する前に、NLS_DATE_FORMATを設定する必要があることに注意してください 24時間制を表示するパラメータ。

    引数timezone1 およびtimezone2 次のテキスト文字列のいずれかになります:

    AST またはADT 大西洋標準時または夏時間
    BST またはBDT 標準または夏時間の設定
    CST またはCDT 中央標準または夏時間
    EST またはEDT 東部標準時または夏時間
    GMT グリニッジ標準時
    HST またはHDT アラスカ-ハワイ標準時または夏時間
    MST またはMDT マウンテンスタンダードまたは夏時間
    NST ニューファウンドランド標準時間
    PST またはPDT 太平洋標準または夏時間
    YST またはYDT YukonStandardまたはDaylightTime

    次に例を示します:

    ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS';
    
    SELECT
        NEW_TIME(
            TO_DATE('2030-03-01 12:30:45', 'YYYY-MM-DD HH24:MI:SS'), 
            'AST', 
            'PST'
            )
    FROM DUAL;

    結果:

    2030-03-01 08:30:45

    前述のように、この関数を使用する場合はNLS_DATE_FORMAT パラメータは24時間制を表示するように設定する必要があるため、上記の例の最初の行はそのようになっています。セッションのNLS_DATE_FORMATの場合は、この行を省略できます。 パラメータはすでに24時間制を使用しています。現在のセッションの日付形式を設定するその他の例については、セッションの日付形式を設定する方法を参照してください。

    ヌル引数

    引数がnullの場合 、結果はnullです :

    SET NULL 'null';
    
    SELECT
        NEW_TIME(null, 'AST', 'ADT') AS "1",
        NEW_TIME(TO_DATE('2030-03-01 12:30:45', 'YYYY-MM-DD HH24:MI:SS'), null, 'ADT') AS "2",
        NEW_TIME(TO_DATE('2030-03-01 12:30:45', 'YYYY-MM-DD HH24:MI:SS'), 'AST', null) AS "3"
    FROM DUAL;

    結果:

          1       2       3 
    _______ _______ _______ 
    null    null    null   

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

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

    引数がありません

    NEW_TIME()を呼び出す 引数の数が間違っているか、引数を渡さないと、エラーが発生します:

    SELECT NEW_TIME()
    FROM DUAL;

    結果:

    Error starting at line : 1 in command -
    SELECT NEW_TIME()
    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. ExcelデータをPostgreSQL9.3にインポートします

    2. AccessとExcelを一緒に使用するトップ10の理由

    3. 列のないSELECTが有効なのはなぜですか

    4. PostgreSQL列'foo'は存在しません