Função MySQL CAST

Resumo : neste tutorial, você aprenderá como usar a CAST()função MySQL para converter um valor de um tipo em outro tipo.

Introdução à função MySQL CAST

A CAST()função permite converter um valor de um tipo em outro tipo. A sintaxe da CAST()função MySQL é a seguinte:

CAST(expression AS TYPE);Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

O tipo de destino pode ser qualquer um dos seguintes tipos: BINARY, CHAR, DATE, DATETIME, TIME, DECIMAL, SIGNED ou UNSIGNED.

Na prática, você costuma usar a CAST()função para retornar um valor com um tipo especificado para comparação nas cláusulas WHERE , JOIN e HAVING .

Exemplos de funções CAST do MySQL

Vamos dar uma olhada em alguns exemplos de uso da CAST()função.

1) Exemplos simples de funções MySQL CAST

No exemplo a seguir, o MySQL converte uma string em um número inteiro implicitamente antes de fazer um cálculo:

SELECT (1 + '1')/2;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Experimente

Saída:

+-------------+
| (1 + '1')/2 |
+-------------+
|           1 |
+-------------+
1 row in set (0.01 sec)Linguagem de código:  JavaScript  ( javascript )

Para converter explicitamente uma string em um número inteiro, você usa a CAST()função como a seguinte instrução:

SELECT (1 + CAST('1' AS UNSIGNED))/2;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Experimente

+-------------------------------+
| (1 + CAST('1' AS UNSIGNED))/2 |
+-------------------------------+
|                        1.0000 |
+-------------------------------+
1 row in set (0.01 sec)Linguagem de código:  JavaScript  ( javascript )

A instrução a seguir converte explicitamente um número inteiro em uma string e concatena a string com outra string:

SELECT CONCAT('MySQL CAST example #',CAST(2 AS CHAR));Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Experimente

+------------------------------------------------+
| CONCAT('MySQL CAST example #',CAST(2 AS CHAR)) |
+------------------------------------------------+
| MySQL CAST example #2                          |
+------------------------------------------------+
1 row in set (0.00 sec)Linguagem de código:  PHP  ( php )

2) Usando a função MySQL CAST() com exemplos de dados de tabela

Vamos dar uma olhada na orderstabela no banco de dados de exemplo :

A consulta a seguir recupera os pedidos cujas datas obrigatórias são janeiro de 2003:

SELECT 
  orderNumber, 
  requiredDate 
FROM 
  orders 
WHERE 
  requiredDate BETWEEN '2003-01-01' AND '2003-01-31';Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Experimente

Como o tipo de dados da requireDatecoluna é DATE, o MySQL precisa converter as strings literais: '2003-01-01'e '2003-01-31'em valores TIMESTAMPWHERE antes de avaliar a condição.

Para garantir a segurança, você pode usar a CAST()função para converter explicitamente uma string em um TIMESTAMPvalor, como segue:

SELECT 
  orderNumber, 
  requiredDate 
FROM 
  orders 
WHERE 
  requiredDate BETWEEN CAST('2003-01-01' AS DATETIME) 
  AND CAST('2003-01-31' AS DATETIME);Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Experimente

+-------------+--------------+
| orderNumber | requiredDate |
+-------------+--------------+
|       10100 | 2003-01-13   |
|       10101 | 2003-01-18   |
|       10102 | 2003-01-18   |
+-------------+--------------+
3 rows in set (0.03 sec)Linguagem de código:  JavaScript  ( javascript )

A instrução a seguir converte DECvalores em CHARvalores e usa os resultados como argumentos da função CONCAT :

SELECT productName,
       CONCAT('Prices(',
               CAST(buyprice AS CHAR),
               ',',
                CAST(msrp AS CHAR),
      ')') prices
FROM products;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Experimente

+---------------------------------------------+-----------------------+
| productName                                 | prices                |
+---------------------------------------------+-----------------------+
| 1969 Harley Davidson Ultimate Chopper       | Prices(48.81,95.70)   |
| 1952 Alpine Renault 1300                    | Prices(98.58,214.30)  |
| 1996 Moto Guzzi 1100i                       | Prices(68.99,118.94)  |
| 2003 Harley-Davidson Eagle Drag Bike        | Prices(91.02,193.66)  |
| 1972 Alfa Romeo GTA                         | Prices(85.68,136.00)  |
| 1962 LanciaA Delta 16V                      | Prices(103.42,147.74) |
| 1968 Ford Mustang                           | Prices(95.34,194.57)  |
| 2001 Ferrari Enzo                           | Prices(95.59,207.80)  |
....

Resumo

  • Use a função MySQL CAST()para converter um valor de qualquer tipo em um valor de tipo especificado.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *