TO_TIMESTAMP_TZ
構文
目的
TO_TIMESTAMP_TZは、charをTIMESTAMP WITH TIME ZONEデータ型の値に変換します。
charには、CHAR、VARCHAR2、NCHARまたはNVARCHAR2のデータ型の文字列と評価される任意の式を指定できます。
ノート:
このファンクションは、文字列をTIMESTAMP WITH LOCAL TIME ZONEに変換しません。変換するには、「CAST」で示すように、CASTファンクションを使用してください。
オプションのDEFAULT return_value ON CONVERSION ERROR句により、charからTIMESTAMP WITH TIME ZONEへの変換中にエラーが発生した場合にこのファンクションで戻される値を指定できます。charの評価中にエラーが発生した場合、この句による影響はありません。return_valueは式またはバインド変数にすることができ、CHAR、VARCHAR2、NCHARまたはNVARCHAR2のデータ型の文字列、あるいはNULLと評価される必要があります。charをTIMESTAMP WITH TIME ZONEに変換する場合と同じ方法を使用して、return_valueがTIMESTAMP WITH TIME ZONEに変換されます。return_valueをTIMESTAMP 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;