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;