Categorias:

Funções de conversão

CAST , ::

Converte um valor de um tipo de dados em outro tipo de dados. As semânticas de CAST são as mesmas semânticas das funções de conversão TO_ datatype correspondentes. Se a conversão não for possível, um erro é gerado. Para obter mais detalhes, consulte as funções de conversão individuaisTO_ datatype.

O operador :: fornece uma sintaxe alternativa para CAST.

Consulte também:

TRY_CAST

Sintaxe

CAST( <source_expr> AS <target_data_type> )
  [ RENAME FIELDS | ADD FIELDS ]

<source_expr> :: <target_data_type>
Copy

Argumentos

source_expr

Expressão de qualquer tipo de dados suportado para ser convertido em um tipo de dados diferente.

target_data_type

O tipo de dados para o qual a expressão deve ser convertida. Se o tipo de dados oferecer suporte a propriedades adicionais, tais como precisão e escala (para números/decimais), as propriedades podem ser incluídas.

RENAME FIELDS

Para OBJECTs estruturados, especifica que você deseja alterar o OBJECT para usar diferentes pares chave-valor. Os valores no objeto original são copiados para os novos pares chave-valor na ordem em que aparecem.

Para obter um exemplo, consulte Exemplo: como alterar os nomes da chave em um OBJECT.

ADD FIELDS

Para OBJECTs estruturados, especifica que você deseja adicionar pares chave-valor ao OBJECT.

Para obter um exemplo, consulte Exemplo: como adicionar chaves a um OBJECT.

Os valores das chaves recém-adicionadas serão definidos como NULL. Se você quiser atribuir um valor a essas chaves, chame a função OBJECT_INSERT.

Notas de uso

  • Se a escala não for suficiente para manter o valor de entrada, a função arredonda o valor.

  • Se a precisão não for suficiente para manter o valor de entrada, a função gera um erro.

  • Quando colunas numéricas são explicitamente convertidas em formulários do tipo de dados inteiros durante um descarregamento de dados em arquivos Parquet, o tipo de dados destas colunas nos arquivos Parquet é INT. Para obter mais informações, consulte Conversão explícita de colunas numéricas em tipos de dados Parquet.

Exemplos

Converter uma cadeia de caracteres contendo um número em decimal com escala especificada (2):

SELECT CAST('1.2345' AS DECIMAL(15,2));
+---------------------------------+
| CAST('1.2345' AS DECIMAL(15,2)) |
|---------------------------------|
|                            1.23 |
+---------------------------------+
Copy

Converter a mesma cadeia de caracteres em decimal com a escala 5, usando a notação :::

SELECT '1.2345'::DECIMAL(15,5);
+-------------------------+
| '1.2345'::DECIMAL(15,5) |
|-------------------------|
|                 1.23450 |
+-------------------------+
Copy

Converter um número em um número inteiro:

SELECT CAST(1.56 AS INTEGER);
+-----------------------+
| CAST(1.56 AS INTEGER) |
|-----------------------|
|                     2 |
+-----------------------+
Copy

Converter uma cadeia de caracteres contendo uma data em um carimbo de data/hora:

SELECT CAST('05-Mar-2014' AS TIMESTAMP);
+----------------------------------+
| CAST('05-MAR-2014' AS TIMESTAMP) |
|----------------------------------|
| 2014-03-05 00:00:00.000          |
+----------------------------------+
Copy