to_char(expr, { numericFormat | datetimeFormat | stringFormat } )
numericFormat
{ ' [ S ] [ L | $ ]
[ 0 | 9 | G | , ] [...]
[ . | D ]
[ 0 | 9 ] [...]
[ L | $ ] [ PR | MI | S ] ' }
Arguments
expr: An expression of type numeric, datetime, STRING, or BINARY.
numericFormat: A STRING literal, specifying the formatted output for expr of type numeric.
datetimeFormat: A STRING literal, specifying the formatted output for expr of type datetime.
stringFormat: A STRING literal, specifying the formatted output for expr of type BINARY.
Returns
A STRING representing the result of the formatting operation.
datetmeFormat can contain the patterns specified in Datetime patterns.
stringFormat can be one of the following (case insensitive):
‘base64’
A base 64 string.
‘hex’
A string in the hexadecimal format.
‘utf-8’
The input binary is decoded to UTF-8 string.
numericFormat can contain the following elements (case insensitive):
0 or 9
Specifies an expected digit between 0 and 9.
A sequence of digits with values between 0 and 9 in the format string matches a sequence of digits in the input value. This generates a result string of the same length as the corresponding sequence as the format string.
The result string is left-padded with zeros if the 0/9 sequence comprises more digits than the matching part of the decimal value, starts with 0, and is before the decimal point.
Otherwise, it is padded with spaces.
. or D
Specifies the position of the decimal point (optional, only allowed once).
, or G
Specifies the position of the grouping (thousands) separator (,).
There must be a 0 or 9 to the left and right of each grouping separator.
$
Specifies the location of the $ currency sign. This character may only be specified once.
S or MI
Specifies the position of a ‘-‘ or ‘+’ sign (optional, only allowed once at the beginning or end of the format string).
Note that S prints + for positive values but MI prints a space.
PR
Only allowed at the end of the format string; specifies that the result string will be wrapped by angle brackets if the input value is negative. (‘<1>’).
If either the integral or the decimal part in numExpr requires more digits than the corresponding part allowed in fmt, the function returns both the parts in the fmt with 0 and 9 replaced by # (e.g '$###.##').
If fmt is malformed Databricks SQL returns an error.
Learn about the interval type in Databricks Runtime and Databricks SQL. Interval type represents intervals of time either on a scale of seconds or months. Understand the syntax and limits with examples.