Oracle Databaseでは、TZ_OFFSET()
関数は、ステートメントが実行された日付に基づいて、引数に対応するタイムゾーンオフセットを返します。
構文
構文は次のようになります:
TZ_OFFSET({ 'time_zone_name'
| '{ + | - } hh : mi'
| SESSIONTIMEZONE
| DBTIMEZONE
}
)
例
実例をいくつか示します。
タイムゾーンリージョン名
有効なタイムゾーンリージョン名を渡すことができます:
SELECT TZ_OFFSET('Australia/Darwin')
FROM DUAL;
結果:
+09:30
システムでサポートされているタイムゾーンのリストを取得する方法は次のとおりです。
タイムゾーンオフセット
タイムゾーンオフセットを渡すことができます。その場合、それは単に自分自身を返します:
SELECT TZ_OFFSET('-10:00')
FROM DUAL;
結果:
-10:00
SESSIONTIMEZONE
機能
SESSIONTIMEZONE
関数は、現在のセッションのタイムゾーンを返します。これを使用して、現在のセッションのタイムゾーンオフセットを取得できます。
例:
SELECT
SESSIONTIMEZONE,
TZ_OFFSET(SESSIONTIMEZONE)
FROM DUAL;
セッションの結果:
SESSIONTIMEZONE TZ_OFFSET(SESSIONTIMEZONE) _____________________ _____________________________ Australia/Brisbane +10:00
DBTIMEZONE
機能
DBTIMEZONE
関数はデータベースのタイムゾーンを返します。これは、SESSIONTIMEZONE
と同じ場合と同じでない場合があります。 システム上で。
例:
SELECT
DBTIMEZONE,
TZ_OFFSET(DBTIMEZONE)
FROM DUAL;
結果:
DBTIMEZONE TZ_OFFSET(DBTIMEZONE) _____________ ________________________ +00:00 +00:00
ヌル引数
null
を渡す 結果はnull
:
SET NULL 'null';
SELECT TZ_OFFSET(null)
FROM DUAL;
結果:
null
デフォルトでは、SQLclおよびSQL * Plusは、null
の場合は常に空白を返します。 SQL SELECT
の結果として発生します 声明。
ただし、SET NULL
は使用できます 返される別の文字列を指定します。ここでは、文字列null
を指定しました 返却する必要があります。
引数がありません
引数の数が間違っているか、引数を渡さずに関数を呼び出すと、エラーが発生します:
SELECT TZ_OFFSET()
FROM DUAL;
結果:
Error starting at line : 1 in command - SELECT TZ_OFFSET() 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: