Oracle TO_TIMESTAMP Function with Examples
The Oracle TO_TIMESTAMP function is useful if you need to work with timestamp data types. Learn how to use it with some examples in this article.

Purpose of the Oracle TO_TIMESTAMP Function
The purpose of the Oracle TO_TIMESTAMP function is to convert a string into a timestamp. It's the "string to timestamp" function in Oracle SQL.
Now, a TIMESTAMP value is a type of date. It includes:
- the date,
- the time, and
- a series of decimal places to indicate fractional seconds.
Converting a string to a TIMESTAMP value is done using the TO_TIMESTAMP function.
Syntax
The syntax of the TO_TIMESTAMP function is:
1TO_TIMESTAMP (input_string, [format_mask], ['nlsparam'] )
Parameters
The parameters of the Oracle TO_TIMESTAMP function are:
- input_string (mandatory): This is the input string, or the string to convert into the timestamp value.
- format_mask (optional): This string specifies the format of the input_string, as you can specify your input in many different ways. If this is not supplied, then the input_string must be in the same format as the NLS_TIMESTAMP_FORMAT parameter, which is your default format.
- nlsparam (optional): If this string is supplied, you can specify the language in which the month and day names and abbreviations are returned.
Can You Convert an Oracle TIMESTAMP to a CHAR?
Yes, you can, if you really need to.
You can use the TO_CHAR function, along with TRUNC, and specify the format.
1SELECT
2TO_CHAR(TRUNC(SYSTIMESTAMP))
3FROM dual;
Result:
117-09-2022
This result is in a CHAR format. You can use a similar set of functions to convert your TIMESTAMP values to CHAR.
While you're here, if you want an easy-to-use list of the main features in Oracle SQL, get my SQL Cheat Sheet here:
What Format Do I Need To Supply For Oracle TO_TIMESTAMP?
The default format of the TO_TIMESTAMP function is the value of NLS_TIMESTAMP_FORMAT, which depends on your Oracle database.
The format can be something like this: 'YYYY-MM-DD HH:MI:SS.FF'
The different formats you can supply are:
| Parameter | Explanation | | YYYY | Four digit year | | MM | Month (01-12, where JAN = 01) | | MON | Abbreviated name of month | | MONTH | Name of month, padded with blanks to length of 9 characters | | DD | Day of month (1-31) | | HH | Hour of day (1-12) | | HH12 | Hour of day (1-12) | | HH24 | Hour of day (0-23) | | MI | Minute (0-59) | | SS | Second (0-59) |
Examples of the Oracle TO_TIMESTAMP Function
Here are some examples of the TO_TIMESTAMP function to convert a string to a timestamp.
I find that examples are the best way for me to learn about code, even with the explanation above.
Example 1
This example uses the TO_TIMESTAMP function with the default format.
1SELECT
2TO_TIMESTAMP('16-SEP-2022 08:10:14 AM')
3FROM dual;
Result:
116/SEP/22 08:10:14.000000000 AM
The result is the same value but converted to a TIMESTAMP data type.
Example 2
This example uses the TO_TIMESTAMP function, but we specify a format.
1SELECT
2TO_TIMESTAMP('12-09-2012 04:32:20 PM', 'DD-MM-YYYY HH:MI:SS AM') AS TS_TEST
3FROM dual;
Result:
112/SEP/22 04:32:20.000000000 PM
The result is the same value but converted to a TIMESTAMP data type.
Example 3
This example uses the TO_TIMESTAMP function, but we specify a different format.
1SELECT
2TO_TIMESTAMP('8 DEC 2022 10:04', 'DD MON YYYY HH:MI') AS TS_TEST
3FROM dual;
Result:
108/DEC/22 10:04:00.000000000 AM
The result is the same value but converted to a TIMESTAMP data type.
Similar Functions
Some functions which are similar to the TO_TIMESTAMP function are:
- TO_DATE: This function converts a value into a DATE data type, which is similar, but has no time component.
You can find a full list of Oracle SQL functions here.
While you're here, if you want an easy-to-use list of the main features in Oracle SQL, get my SQL Cheat Sheet here:
