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: