Outdated Version
You are viewing an older version of this section. View current production version.
TO_NUMBER
Converts a CHAR
or VARCHAR
type value to a DECIMAL
value.
Syntax
TO_NUMBER ( value [, format_string ] )
Arguments
value
: AnyCHAR
orVARCHAR
type value.format_string
: The format string used to convert the inputvalue
.
Return Type
A decimal value.
Remarks
- If the
format_string
is not specified, the input argument is converted to a numeric value. - The return value will have a precision of
DECIMAL(65,15)
.
The following table describes the elements in a format_string
.
Element | Description | Example |
---|---|---|
, (comma) | Specifies the position of commas in the input value. While multiple commas can be specified in a format, it cannot be used at the start or to the right of a decimal in a format string. | 9,999,999 |
. (period) | Specifies the position of the decimals. Only one decimal can be specified in a format string. | 9,999.99 |
$ (Dollar sign) | Specifies that the input value has a leading $ (Dollar) sign. | $999 |
EEEE | Specifies that the input value is in scientific notation. | 9.9EEE |
9 | Specifies the number of digits, with a leading - (minus) if the number is negative. The output will have no leading zeroes, except for a zero value. | 99999 |
S | Depending on it its placement, it identifies a number as positive or negative with the use of + (plus) or - (minus) sign. | S999 or 999S |
Example
The following examples demonstrate the use of TO_NUMBER
function.
SELECT TO_NUMBER('9876.34') AS "Output";
****
+---------+
| Output |
+---------+
| 9876.34 |
+---------+
SELECT TO_NUMBER('9876.34', '999999.99') AS "Output";
****
+---------+
| Output |
+---------+
| 9876.34 |
+---------+
SELECT TO_NUMBER('5645342', '9999999') AS "Output";
****
+---------+
| Output |
+---------+
| 5645342 |
+---------+
SELECT TO_NUMBER('1,234.56789', '999,999,999.99999') AS "Output";
****
+------------+
| Output |
+------------+
| 1234.56789 |
+------------+
SELECT TO_NUMBER('$78.12', '$99.99') AS "Output";
****
+--------+
| Output |
+--------+
| 78.12 |
+--------+
SELECT TO_NUMBER('123,456,789', '999,999,999') AS "Output";
****
+-----------+
| Output |
+-----------+
| 123456789 |
+-----------+
SELECT TO_NUMBER('1.01234567890000000000E010', '9.99999999999999999999EEEE') AS "Output";
****
+---------------+
| Output |
+---------------+
| 10123456789.0 |
+---------------+