Funções de conversão

Essa família de funções pode ser usada para converter uma expressão de qualquer tipo de dados Snowflake em outro tipo de dados.

Neste tópico:

Lista de funções

Subcategoria

Função

Notas

Qualquer tipo de dados

CAST , ::

TRY_CAST

Versão de tratamento de erros de CAST.

Tipos de dados textos/caracteres/binários

TO_CHAR , TO_VARCHAR

TO_BINARY

TRY_TO_BINARY

Versão de tratamento de erros de TO_BINARY.

Tipos de dados numéricos

TO_DECIMAL , TO_NUMBER , TO_NUMERIC

TO_DOUBLE

TRY_TO_DECIMAL, TRY_TO_NUMBER, TRY_TO_NUMERIC

Versões de tratamento de erros de TO_DECIMAL, TO_NUMBER etc.

TRY_TO_DOUBLE

Versão de tratamento de erros de TO_DOUBLE.

Tipo de dados booleanos

TO_BOOLEAN

TRY_TO_BOOLEAN

Versão de tratamento de erros de TO_BOOLEAN.

Tipos de dados de data e hora

TO_DATE , DATE

TO_TIME , TIME

TO_TIMESTAMP / TO_TIMESTAMP_*

TRY_TO_DATE

Versão de tratamento de erros de TO_DATE.

TRY_TO_TIME

Versão de tratamento de erros de TO_TIME.

TRY_TO_TIMESTAMP / TRY_TO_TIMESTAMP_*

Versões de tratamento de erros de TO_TIMESTAMP etc.

Tipos de dados semiestruturados

TO_ARRAY

TO_OBJECT

TO_VARIANT

Tipos de dados geoespaciais

TO_GEOGRAPHY

TRY_TO_GEOGRAPHY

Versão de tratamento de erros de TO_GEOGRAPHY

ST_GEOGFROMGEOHASH

ST_GEOGPOINTFROMGEOHASH

ST_GEOGRAPHYFROMWKB

ST_GEOGRAPHYFROMWKT

TO_GEOMETRY

TRY_TO_GEOMETRY

Versão de tratamento de erros de TO_GEOMETRY

ST_GEOMETRYFROMWKB

ST_GEOMETRYFROMWKT

Funções de conversão de tratamento de erros

As funções de conversão com um prefixo TRY_ são versões especiais de suas respectivas funções de conversão. Essas funções retornam um valor NULL em vez de apresentar um erro quando a conversão não pode ser realizada:

Observe que essas funções aceitam apenas expressões de cadeia de caracteres (isto é, tipo de dados VARCHAR ou CHAR) como entrada.

Importante

Essas funções de conversão de tratamento de erros são otimizadas para situações em que os erros de conversão são pouco frequentes:

  • Se não houver erros (ou houver muito poucos), eles não devem gerar um impacto visível no desempenho.

  • Se houver um grande número de falhas de conversão, o uso dessas funções pode resultar em um desempenho significativamente mais lento. Além disso, ao utilizá-las com o tipo VARIANT, algumas operações podem resultar em redução de desempenho.

Formatos numéricos em funções de conversão

As funções TO_DECIMAL , TO_NUMBER , TO_NUMERIC e TO_DOUBLE aceitam um parâmetro opcional que especifica o formato da cadeia de caracteres de entrada, se a expressão de entrada avaliar para uma cadeia de caracteres. Para obter mais informações sobre os valores que esse parâmetro pode ter, consulte Modelos de formato SQL.

Formatos de data e hora em funções de conversão

As funções a seguir permitem especificar a data, hora ou formato de carimbo de data/hora esperado para analisar ou produzir uma cadeia de caracteres:

Você especifica o formato em um argumento opcional, usando os seguintes elementos que não diferenciam maiúsculas e minúsculas para descrever o formato:

Elemento de formato

Descrição

YYYY

Ano com quatro dígitos.

YY

Ano com dois dígitos, controlado pelo parâmetro de sessão TWO_DIGIT_CENTURY_START, por exemplo, quando definido como 1980, valores de 79 e 80 analisados como 2079 e 1980 respectivamente.

MM

Mês com dois dígitos (01 = janeiro, etc.).

MON

Nome do mês completo ou abreviado.

MMMM

Nome completo do mês.

DD

Dia do mês com dois dígitos (01 até 31).

DY

Dia da semana abreviado.

HH24

Hora com dois dígitos (00 até 23). Você não deve especificar AM / PM.

HH12

Hora com dois dígitos (01 até 12). Você pode especificar AM / PM.

AM , PM

Ante meridiem (am) / post meridiem (pm). Use isso somente com HH12 (não com HH24).

MI

Minuto com dois dígitos (00 até 59).

SS

Segundo com dois dígitos (00 até 59).

FF[0-9]

Fracionamento de segundos com precisão 0 (segundos) a 9 (nanossegundos), por exemplo FF, FF0, FF3, FF9. Especificando que FF é equivalente a FF9 (nanossegundos).

TZH:TZM , TZHTZM , TZH

Hora e minuto do fuso horário, ajustados em relação ao UTC. Pode ser prefixado por + / - para sinalizar.

UUUU

Ano de quatro dígitos no formato ISO, que são negativos para anos BCE.

Nota

  • Quando se utiliza um formato somente de data, presume-se que a hora associada seja a meia-noite desse dia.

  • Qualquer elemento no formato entre aspas duplas ou elementos diferentes dos elementos acima é analisado/formatado sem ser interpretado.

  • Para obter mais detalhes sobre intervalos válidos, número de dígitos e práticas recomendadas, consulte Informações adicionais sobre o uso de formatos de data, hora e carimbo de data/hora.

Notas de uso

Qualquer elemento no formato entre aspas duplas ou elementos diferentes dos elementos acima é analisado/formatado sem ser interpretado.

Exemplos

SELECT TO_DATE('3/4/2013', 'dd/mm/yyyy');

-----------------------------------+
 to_date('3/4/2013', 'dd/mm/yyyy') |
-----------------------------------+
 2013-04-03                        |
-----------------------------------+
Copy
SELECT TO_VARCHAR('2013-04-05'::date, 'mon dd, yyyy');

------------------------------------------------+
 to_varchar('2013-04-05'::date, 'mon dd, yyyy') |
------------------------------------------------+
 Apr 05, 2013                                   |
------------------------------------------------+
Copy

Formatos binários em funções de conversão

TO_CHAR , TO_VARCHAR e TO_BINARY aceitam um argumento opcional especificando o formato esperado para analisar ou produzir uma cadeia de caracteres.

O formato pode ser uma das seguintes cadeias de caracteres (sem distinção de maiúsculas e minúsculas):

  • HEX

  • BASE64

  • UTF-8

Para obter mais informações sobre esses formatos, consulte Overview of Supported Binary Formats.

Para obter exemplos de utilização desses formatos, consulte a seção de exemplos de Binary Input and Output.