Guia Completo para Conversão de Tipos de Dados Usando a Função SQL CAST

Ao trabalhar com dados em SQL, você pode precisar converter valores entre diferentes tipos de dados. A função SQL CAST é uma ferramenta conveniente para realizar essas conversões de tipos de dados de forma fácil e clara. Este artigo fornece uma explicação detalhada de como usar a função CAST, incluindo uso básico, exemplos específicos de conversão, exemplos avançados e métodos de tratamento de erros. Aprimore seu conhecimento sobre conversão de tipos de dados em SQL e busque criar consultas mais avançadas.

Índice

Sintaxe Básica da Função CAST

A função CAST é uma função SQL padrão para converter tipos de dados. A sintaxe básica é a seguinte:

CAST(expression AS target_data_type)

Aqui, expression é o valor ou coluna a ser convertida, e target_data_type é o tipo de dado de destino. Por exemplo, para converter uma string para um inteiro, você pode usar a seguinte consulta:

SELECT CAST('123' AS INT);

Esta consulta converte a string '123' em um inteiro e retorna o valor numérico 123.

Exemplos de Conversão de Tipos de Dados

Aqui estão alguns exemplos típicos de conversões de tipos de dados usando a função CAST.

Convertendo String para Inteiro

Exemplo de conversão de dados do tipo string para o tipo inteiro.

SELECT CAST('456' AS INT) AS ConvertedValue;

Esta consulta converte a string '456' para o inteiro 456.

Convertendo Inteiro para String

Exemplo de conversão de dados do tipo inteiro para o tipo string.

SELECT CAST(789 AS VARCHAR(10)) AS ConvertedValue;

Esta consulta converte o inteiro 789 para a string '789'.

Convertendo String para Data

Exemplo de conversão de dados do tipo string para o tipo data.

SELECT CAST('2024-05-24' AS DATE) AS ConvertedValue;

Esta consulta converte a string '2024-05-24' para a data 2024-05-24.

Convertendo Ponto Flutuante para Inteiro

Exemplo de conversão de dados do tipo ponto flutuante para o tipo inteiro.

SELECT CAST(123.456 AS INT) AS ConvertedValue;

Esta consulta converte o número de ponto flutuante 123.456 para o inteiro 123.

Diferenças Entre as Funções CAST e CONVERT

O SQL também possui a função CONVERT, que é semelhante à função CAST, mas existem algumas diferenças entre as duas.

Diferenças Básicas

A função CAST está em conformidade com o padrão ANSI SQL e é suportada pela maioria dos bancos de dados. Em contraste, a função CONVERT é uma extensão usada principalmente no Microsoft SQL Server e oferece opções de formatação específicas.

Diferenças de Sintaxe

Sintaxe da função CAST:

CAST(expression AS target_data_type)

Sintaxe da função CONVERT:

CONVERT(target_data_type, expression [, style])

A função CONVERT possui uma opção style que permite converter datas ou strings em formatos específicos.

Exemplos de Uso

Exemplo da função CAST:

SELECT CAST('123' AS INT) AS ConvertedValue;

Exemplo da função CONVERT:

SELECT CONVERT(INT, '123') AS ConvertedValue;

Exemplo da função CONVERT usando a opção de formato:

SELECT CONVERT(VARCHAR, GETDATE(), 101) AS USFormattedDate;

Esta consulta converte a data atual para uma string no formato MM/DD/YYYY.

Exemplos Avançados Usando a Função CAST

A função CAST pode ser usada em vários cenários avançados além da conversão básica de tipos de dados. Aqui estão alguns exemplos práticos.

Concatenando Números como Strings

Exemplo de conversão de um número para uma string e sua concatenação com outra string.

SELECT 'Order Number: ' + CAST(OrderID AS VARCHAR) AS OrderDescription
FROM Orders;

Esta consulta converte o OrderID para uma string e o concatena com a string Order Number:.

Forçando Consistência de Tipo de Dados

Exemplo de garantia de consistência de tipo de dados ao usar colunas de diferentes tipos de dados juntas.

SELECT CAST(SalesAmount AS DECIMAL(10, 2)) AS FormattedSalesAmount
FROM Sales;

Esta consulta converte a coluna SalesAmount para o tipo DECIMAL com 2 casas decimais.

Comparando Datas e Strings

Exemplo de conversão de uma data para o tipo string para comparação.

SELECT *
FROM Events
WHERE CAST(EventDate AS VARCHAR) = '2024-05-24';

Esta consulta converte a coluna EventDate para uma string e procura linhas que correspondam à data especificada como string.

Conversão Condicional de Tipo de Dados

Exemplo de uso da instrução CASE para realizar conversão condicional de tipos de dados.

SELECT 
    CASE 
        WHEN IsNumeric(Value) = 1 THEN CAST(Value AS INT)
        ELSE NULL
    END AS ConvertedValue
FROM SampleTable;

Esta consulta converte a coluna Value para inteiro apenas se o valor for numérico.

Tratamento de Erros Usando a Função CAST

Erros podem ocorrer durante a conversão de tipos de dados. Aqui estão alguns métodos de tratamento de erros a considerar ao usar a função CAST.

Usando a Função TRY_CAST

No SQL Server, você pode usar a função TRY_CAST para evitar erros de conversão. TRY_CAST retorna NULL se a conversão falhar.

SELECT TRY_CAST('abc' AS INT) AS SafeConversion;

Esta consulta retorna NULL porque a conversão da string 'abc' para inteiro falha.

Tratamento de Erros com Instruções CASE

Exemplo de combinação da instrução CASE com tratamento de erros baseado em condições.

SELECT 
    CASE 
        WHEN ISNUMERIC(Value) = 1 THEN CAST(Value AS INT)
        ELSE NULL
    END AS SafeConversion
FROM SampleTable;

Esta consulta retorna NULL se o Value não for numérico.

Usando a Função TRY_PARSE

TRY_PARSE é útil para converter strings em datas ou números. TRY_PARSE também retorna NULL se a conversão falhar.

SELECT TRY_PARSE('2024-05-24' AS DATE USING 'en-US') AS SafeDateConversion;

Esta consulta converte a string '2024-05-24' para o tipo data e retorna NULL se a conversão falhar.

Consulta de Exemplo para Tratamento de Erros

Aqui está um exemplo de tratamento de erros usando TRY_CAST.

SELECT 
    Name, 
    TRY_CAST(Age AS INT) AS SafeAge 
FROM Users;

Esta consulta evita erros retornando NULL se os valores na coluna Age não puderem ser convertidos para inteiros.

Conclusão

A função CAST é uma ferramenta poderosa e flexível para conversão de tipos de dados em SQL. Compreender sua sintaxe básica e experimentar vários exemplos de conversão de tipos de dados ajudará você a desenvolver habilidades para criar consultas mais complexas. Além disso, conhecer as diferenças e o uso de outras funções de conversão como CONVERT e TRY_CAST é importante. Um tratamento adequado de erros garante a criação de consultas SQL confiáveis. Domine o uso da função CAST para realizar operações de banco de dados com mais eficiência.

Índice