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: