TO_TIMESTAMP_TZ
Syntax
Purpose
TO_TIMESTAMP_TZ
converts char
to a value of TIMESTAMP
WITH
TIME
ZONE
data type.
For char
, you can specify any expression that evaluates to a character string of CHAR
, VARCHAR2
, NCHAR
, or NVARCHAR2
data type.
Note:
This function does not convert character strings to TIMESTAMP
WITH
LOCAL
TIME
ZONE
. To do this, use a CAST
function, as shown in CAST.
The optional DEFAULT
return_value
ON
CONVERSION
ERROR
clause allows you to specify the value this function returns if an error occurs while converting char
to TIMESTAMP
WITH
TIME
ZONE
. This clause has no effect if an error occurs while evaluating char
. The return_value
can be an expression or a bind variable, and it must evaluate to a character string of CHAR
, VARCHAR2
, NCHAR
, or NVARCHAR2
data type, or null. The function converts return_value
to TIMESTAMP
WITH
TIME
ZONE
using the same method it uses to convert char
to TIMESTAMP
WITH
TIME
ZONE
. If return_value
cannot be converted to TIMESTAMP
WITH
TIME
ZONE
, then the function returns an error.
The optional fmt
specifies the format of char
. If you omit fmt
, then char
must be in the default format of the TIMESTAMP
WITH
TIME
ZONE
data type. The optional 'nlsparam'
has the same purpose in this function as in the TO_CHAR
function for date conversion.
Examples
The following example converts a character string to a value of 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
The following example casts a null column in a UNION
operation as TIMESTAMP
WITH
LOCAL
TIME
ZONE
using the sample tables oe.order_items
and oe.orders
:
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 . . .
The following example returns the default value of NULL because the specified expression cannot be converted to a TIMESTAMP
WITH
TIME
ZONE
value, due to an invalid month specification:
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;