

 O Amazon Redshift não permitirá mais a criação de UDFs do Python a partir do Patch 198. As UDFs do Python existentes continuarão a funcionar normalmente até 30 de junho de 2026. Para ter mais informações, consulte a [publicação de blog ](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

# Função CONVERT
<a name="r_CONVERT_function"></a>

Semelhante à [função CAST](https://docs.aws.amazon.com/redshift/latest/dg/r_CAST_function.html), 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](c_Supported_data_types.md#r_Type_conversion). 

## Sintaxe
<a name="r_CONVERT-syntax"></a>

```
CONVERT ( type, expression )
```

## Argumentos
<a name="r_CONVERT-arguments"></a>

 *type*   
Um dos compatíveis [Tipos de dados](c_Supported_data_types.md). 

 *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
<a name="r_CONVERT-return-type"></a>

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
<a name="r_CONVERT-examples"></a>

Alguns dos exemplos usam o [banco de dados TICKIT](https://docs.aws.amazon.com/redshift/latest/dg/c_sampledb.html) como exemplo. Para ter mais informações sobre como configurar os dados de exemplo, consulte [Carregar dados de amostra](https://docs.aws.amazon.com/redshift/latest/gsg/cm-dev-t-load-sample-data.html).

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\$1TIMEZONE](CONVERT_TIMEZONE.md). Para funções adicionais de data e hora, consulte [Perfis de data e hora](Date_functions_header.md).

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)
```