Функция to_char
Область применения: Databricks SQL Databricks Runtime 11.3 LTS и выше
Возвращает приведение expr
к STRING
использованию форматирования fmt
.
В Databricks Runtime 14.0 и более ранних to_char
версиях поддерживает expr
числовые типы.
В Databricks SQL и Databricks Runtime 14.1 и более поздних to_char
версиях также поддерживает expr
типы DATE
, TIMESTAMP
и BINARY
to_char
является синонимом to_varchar.
Синтаксис
to_char(expr, { numericFormat | datetimeFormat | stringFormat } )
numericFormat
{ ' [ S ] [ L | $ ]
[ 0 | 9 | G | , ] [...]
[ . | D ]
[ 0 | 9 ] [...]
[ L | $ ] [ PR | MI | S ] ' }
Аргументы
-
expr
: выражение числовых типов, даты и времени илиSTRING
BINARY
. -
numericFormat
STRING
: литерал, указывающий форматированные выходные данные дляexpr
числовых типов. -
datetimeFormat
STRING
: литерал, указывающий форматированные выходные данные дляexpr
типа datetime. -
stringFormat
STRING
: литерал, указывающий форматированные выходные данные дляexpr
типаBINARY
.
Возвраты
Результат STRING
операции форматирования.
datetmeFormat
может содержать шаблоны, указанные в шаблонах Datetime.
stringFormat
может быть одним из следующих вариантов (без учета регистра):
"base64"
Базовая строка 64.
"шестнадцатеричный"
Строка в шестнадцатеричном формате.
'utf-8'
Входной двоичный файл декодируется в строку UTF-8.
numericFormat
может включать следующие элементы (регистр не имеет значения):
0
или9
Указывает ожидаемую цифру между 0 и 9. Последовательность цифр с values от 0 до 9 в строке формата соответствует последовательности цифр в входном значении. Это приводит к созданию результирующей строки с той же длиной, что и у соответствующей последовательности, в виде строки форматирования. Результирующая строка слева заполняется с начала нулями, если последовательность 0/9 содержит больше цифр, чем соответствующая часть десятичного значения, начинается с 0 и находится перед десятичной точкой. В противном случае она заполняется пробелами.
.
илиD
Указывает позицию десятичной точки (необязательно, разрешено только один раз).
,
илиG
Указывает позицию разделителя группирований (тысяч) (,). Справа и слева от каждого разделителя группирований должна находиться цифра 0 или 9.
$
Указывает расположение знака валюты $. Этот символ может быть указан только один раз.
S
илиMI
Указывает позицию знака "-" или "+" (необязательно, разрешено только один раз в начале или конце строки форматирования). Обратите внимание, что
S
выводит+
для положительных values, аMI
оставляет промежуток.PR
Разрешено только в конце строки форматирования. Указывает, что результирующая строка будет заключена в угловые скобки, если входное значение отрицательное. ("<1>").
Если целочисленная или десятичная часть требуют больше цифр, чем соответствующая часть разрешена, numExpr
функция возвращает обе части в fmt
элементе с fmt
и 0
заменены 9
(например#
).'$###.##'
Если fmt
имеет неправильный формат, Databricks SQL возвращает ошибку.
Эта функция является псевдонимом для to_varchar.
Примеры
> SELECT to_char(454, '999');
454
> SELECT to_char(454, '000.00');
454.00
> SELECT to_char(12454, '99,999');
12,454
> SELECT to_char(78.12, '$99.99');
$78.12
> SELECT to_char(-12454.8, '99,999.9S');
12,454.8-
> SELECT to_char(12454.8, '99,999.9S');
12,454.8+
> SELECT '>' || to_char(123, '00000.00') || '<';
>00123.00<
> SELECT '>' || to_char(123, '99999.99') || '<';
> 123.00<
> SELECT to_char(1.1, '99');
##
> SELECT to_char(111.11, '99.9');
##.#
> SELECT to_char(111.11, '$99.9');
$##.#
> SELECT to_char(date'2016-04-08', 'y');
2016
> SELECT to_char(x'537061726b2053514c', 'base64');
U3BhcmsgU1FM
> SELECT to_char(x'537061726b2053514c', 'hex');
537061726B2053514C
> SELECT to_char(encode('abc', 'utf-8'), 'utf-8');
abc
> SELECT to_char(111, 'wrong');
Error: 'wrong' is a malformed format.