Função CONVERT - Amazon Redshift

Função CONVERT

Semelhante à função CAST, a função CONVERT converte um tipo de dado em outro compatível. Por exemplo, é possível converter uma string em uma data ou um tipo numérico em uma string. CONVERT executa uma conversão em runtime, o que significa que a conversão não altera o tipo de dado de um valor em uma tabela de origem. Isso é alterado somente no contexto da consulta.

Determinados tipos de dados exigem uma conversão explícita para outros tipos de dados usando a função CONVERT. Outros tipos de dados podem ser convertidos implicitamente, como parte de outro comando, sem usar CAST ou CONVERT. Consulte Compatibilidade e conversão dos tipos.

Sintaxe

CONVERT ( type, expression )

Argumentos

tipo

Um dos Tipos de dados compatíveis.

expressão

Uma expressão que avalia para um ou mais valores, tal como um nome de coluna ou um literal. A conversão de valores nulos retorna nulos. A expressão não pode conter strings em branco ou vazias.

Tipo de retorno

CONVERT retorna o tipo de dados especificado pelo argumento type.

nota

O Amazon Redshift retornará um erro se você tentar realizar uma conversão problemática, como uma conversão DECIMAL que perde precisão, como a seguinte:

SELECT CONVERT(decimal(2,1), 123.456);

ou uma conversão INTEGER que causa um transbordamento:

SELECT CONVERT(smallint, 12345678);

Exemplos

Alguns dos exemplos usam o banco de dados TICKIT como exemplo. Para ter mais informações sobre como configurar os dados de exemplo, consulte Carregar dados de amostra.

A consulta a seguir usa a função CONVERT para converter uma coluna de números decimais em inteiros.

SELECT CONVERT(integer, pricepaid) FROM sales WHERE salesid=100;

Este exemplo converte um número inteiro em uma string.

SELECT CONVERT(char(4), 2008);

Neste exemplo, a data e hora atuais são convertidas em um tipo de dados de caractere variável:

SELECT CONVERT(VARCHAR(30), GETDATE()); getdate --------- 2023-02-02 04:31:16

Este exemplo converte a coluna saletime para remover as datas de cada linha e manter apenas a hora.

SELECT CONVERT(time, saletime), salesid FROM sales order by salesid limit 10;

Para obter informações sobre como converter um carimbo de data/hora de um fuso horário para outro, consulte Função CONVERT_TIMEZONE. Para funções adicionais de data e hora, consulte Perfis de data e hora.

O exemplo a seguir converte dados de caracteres variáveis em objetos de data e hora.

SELECT CONVERT(datetime, '2008-02-18 02:36:48') as mysaletime;
nota

Não é possível executar uma operação CAST ou CONVERT no tipo de dados GEOMETRY para alterá-lo para outro tipo de dados. No entanto, você pode fornecer uma representação hexadecimal de uma string literal em formato binário bem-conhecido estendido (EWKB - extended well-known binary) como entrada para funções que aceitam um argumento GEOMETRY. Por exemplo, a função ST_AsText seguinte espera um tipo de dados GEOMETRY.

SELECT ST_AsText('01010000000000000000001C400000000000002040');
st_astext ------------ POINT(7 8)

Também é possível especificar explicitamente o tipo de dados GEOMETRY.

SELECT ST_AsText('010100000000000000000014400000000000001840'::geometry);
st_astext ------------ POINT(5 6)