TO_TIMESTAMP_TZ

構文

目的

TO_TIMESTAMP_TZは、charTIMESTAMP WITH TIME ZONEデータ型の値に変換します。

charには、CHARVARCHAR2NCHARまたはNVARCHAR2のデータ型の文字列と評価される任意の式を指定できます。

ノート:

このファンクションは、文字列をTIMESTAMP WITH LOCAL TIME ZONEに変換しません。変換するには、「CAST」で示すように、CASTファンクションを使用してください。

オプションのDEFAULT return_value ON CONVERSION ERROR句により、charからTIMESTAMP WITH TIME ZONEへの変換中にエラーが発生した場合にこのファンクションで戻される値を指定できます。charの評価中にエラーが発生した場合、この句による影響はありません。return_valueは式またはバインド変数にすることができ、CHARVARCHAR2NCHARまたはNVARCHAR2のデータ型の文字列、あるいはNULLと評価される必要があります。charTIMESTAMP WITH TIME ZONEに変換する場合と同じ方法を使用して、return_valueTIMESTAMP WITH TIME ZONEに変換されます。return_valueTIMESTAMP WITH TIME ZONEに変換できない場合は、エラーが戻されます。

オプションのfmtは、charの書式を指定します。fmtを指定しない場合、charはデフォルト書式のTIMESTAMP WITH TIME ZONEデータ型である必要があります。オプションの'nlsparam'は、日付変換のTO_CHARファンクションの場合と同じ用途で使用されます。

次の例では、文字列をTIMESTAMP WITH TIME ZONE値に変換します。

SELECT TO_TIMESTAMP_TZ('1999-12-01 11:00:00 -8:00',
   'YYYY-MM-DD HH:MI:SS TZH:TZM') FROM DUAL;

TO_TIMESTAMP_TZ('1999-12-0111:00:00-08:00','YYYY-MM-DDHH:MI:SSTZH:TZM')
--------------------------------------------------------------------
01-DEC-99 11.00.00.000000000 AM -08:00

次の例では、サンプル表oe.order_itemsおよびoe.ordersを使用して、UNION演算のNULL列をTIMESTAMP WITH LOCAL TIME ZONEとしてキャストします。

SELECT order_id, line_item_id,
   CAST(NULL AS TIMESTAMP WITH LOCAL TIME ZONE) order_date
   FROM order_items
UNION
SELECT order_id, to_number(null), order_date
   FROM orders;

  ORDER_ID LINE_ITEM_ID ORDER_DATE
---------- ------------ -----------------------------------
      2354            1
      2354            2
      2354            3
      2354            4
      2354            5
      2354            6
      2354            7
      2354            8
      2354            9
      2354           10
      2354           11
      2354           12
      2354           13
      2354              14-JUL-00 05.18.23.234567 PM
      2355            1
      2355            2
. . .

次の例では、無効な月を指定していることで、指定した式をTIMESTAMP WITH TIME ZONE値に変換できないため、デフォルト値のNULLが戻されます。

SELECT TO_TIMESTAMP_TZ('1999-13-01 11:00:00 -8:00'
       DEFAULT NULL ON CONVERSION ERROR,
       'YYYY-MM-DD HH:MI:SS TZH:TZM') "Value"
  FROM DUAL;