Compartilhar via


Função to_varchar

Aplica-se a: verificação marcada como sim Databricks SQL marca de seleção positiva 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 ou BINARY.
  • numericFormat: um STRING literal, especificando a saída formatada para o tipo numérico expr.
  • datetimeFormat: um STRING literal, especificando a saída formatada para o expr do tipo datetime.
  • stringFormat: um STRING literal, especificando a saída formatada para expr do tipo BINARY.

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 ou 9

    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.

  • . ou D

    Especifica a posição do ponto decimal (opcional, permitido apenas uma vez).

  • , ou G

    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 ou MI

    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, mas MI 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.