Função to_varchar
Aplica-se a: Databricks SQL Databricks Runtime 11.3 LTS e versões posteriores
Retorna expr
convertido para STRING
usando a formatação fmt
.
No Databricks Runtime 14.0 e posterior, to_varchar
dá suporte a tipos numéricos expr
.
No Databricks SQL e no Databricks Runtime 14.1 e superior, o to_varchar
também dá suporte a expr
dos tipos DATE
, TIMESTAMP
e BINARY
to_varchar
é um sinônimo para to_char.
Sintaxe
to_varchar(expr, { numericFormat | datetimeFormat | stringFormat } )
numericFormat
{ ' [ S ] [ L | $ ]
[ 0 | 9 | G | , ] [...]
[ . | D ]
[ 0 | 9 ] [...]
[ L | $ ] [ PR | MI | S ] ' }
Argumentos
expr
: uma expressão do tipo numérico, datetime,STRING
ouBINARY
.numericFormat
: umSTRING
literal, especificando a saída formatada para o tipo numéricoexpr
.datetimeFormat
: umSTRING
literal, especificando a saída formatada para oexpr
do tipo datetime.stringFormat
: umSTRING
literal, especificando a saída formatada paraexpr
do tipoBINARY
.
Retorna
Um STRING
que representa o resultado da operação de formatação.
datetmeFormat
pode conter os padrões especificados em padrões de datetime.
stringFormat
pode ser um dos seguintes (não diferencia maiúsculas de minúsculas):
‘base64’
Uma cadeia de caracteres base 64.
‘hex’
Uma cadeia de caracteres no formato hexadecimal.
‘utf-8’
O binário de entrada é decodificado para a cadeia de caracteres UTF-8.
numericFormat
pode conter os seguintes elementos (diferencia maiúsculas de minúsculas):
0
ou9
Especifica um dígito esperado entre 0 e 9. Uma sequência de dígitos com valores entre 0 e 9 no formato de cadeia de caracteres corresponde a uma sequência de dígitos no valor de entrada. Isso gera uma cadeia de caracteres do mesmo comprimento que a sequência correspondente do formato de cadeia de caracteres. A cadeia de caracteres resultante será preenchida com zeros à esquerda se a sequência 0/9 for composta por mais dígitos do que a parte correspondente do valor decimal, começar com 0 e estiver antes do ponto decimal. Caso contrário, será preenchida com espaços.
.
ouD
Especifica a posição do ponto decimal (opcional, permitido apenas uma vez).
,
ouG
Especifica a posição do separador de agrupamento (milhares) (.). Precisa haver um 0 ou 9 à esquerda e à direita de cada separador de agrupamento.
$
Especifica o local do sinal da moeda. Esse caractere só pode ser especificado uma vez.
S
ouMI
Especifica a posição de um sinal "-" ou "+" (opcional, permitido apenas uma vez no início ou no final do formato da cadeia de caracteres). Observe que
S
imprime+
para valores positivos, masMI
imprime um espaço.PR
Permitido somente no final do formato da cadeia de caracteres; e especifica que a cadeia de caracteres resultante será encapsulada por colchetes angulares (< >) se o valor de entrada for negativo. ("<1>").
Se numExpr
exigir mais dígitos do que fmt
permite, a função retornará fmt
com 0
e 9
substituído por #
(por exemplo, '$###.##'
).
Se fmt
for malformado, o SQL do Databricks retornará um erro.
Essa função é um alias para to_varchar.
Exemplos
> SELECT to_varchar(454, '999');
454
> SELECT to_varchar(454, '000.00');
454.00
> SELECT to_varchar(12454, '99,999');
12,454
> SELECT to_varchar(78.12, '$99.99');
$78.12
> SELECT to_varchar(-12454.8, '99,999.9S');
12,454.8-
> SELECT to_varchar(12454.8, '99,999.9S');
12,454.8+
> SELECT '>' || to_varchar(123, '00000.00') || '<';
>00123.00<
> SELECT '>' || to_varchar(123, '99999.99') || '<';
> 123.00<
> SELECT to_varchar(1.1, '99');
##
> SELECT to_varchar(111.11, '99.9');
##.#
> SELECT to_varchar(111.11, '$99.9');
$##.#
> SELECT to_varchar(date'2016-04-08', 'y');
2016
> SELECT to_varchar(x'537061726b2053514c', 'base64');
U3BhcmsgU1FM
> SELECT to_varchar(x'537061726b2053514c', 'hex');
537061726B2053514C
> SELECT to_varchar(encode('abc', 'utf-8'), 'utf-8');
abc
> SELECT to_varchar(111, 'wrong');
Error: 'wrong' is a malformed format.