A função CAST() no MySQL é usada para converter um valor de um tipo de dados para outro tipo de dados especificado na expressão. É usado principalmente com cláusulas WHERE, HAVING e JOIN. Esta função é semelhante à função CONVERT() em MySQL .
A seguir estão os tipos de dados para os quais esta função funciona perfeitamente:
Tipo de dados | Descrições |
---|---|
DATA | Ele converte o valor em tipo de dados DATE no formato 'AAAA-MM-DD'. Ele suporta o intervalo de DATE em '1000-01-01' a '9999-12-31'. |
DATA HORA | Ele converte o valor no tipo de dados DATETIME no formato 'AAAA-MM-DD HH:MM:SS'. Ele suporta o intervalo de '1000-01-01 00:00:00' a '9999-12-31 23:59:59'. |
TEMPO | Ele converte o valor no tipo de dados TIME no formato 'HH:MM:SS'. Ele suporta o intervalo de tempo de '-838:59:59' a '838:59:59'. |
CARACTERES | Ele converte um valor no tipo de dados CHAR que contém a sequência de comprimento fixo. |
DECIMAL | Ele converte um valor no tipo de dados DECIMAL que contém uma sequência decimal. |
ASSINADO | Ele converte um valor no tipo de dados SIGNED que contém o inteiro assinado de 64 bits. |
NÃO ASSINADO | Ele converte um valor no tipo de dados UNSIGNED que contém o inteiro não assinado de 64 bits. |
BINÁRIO | Ele converte um valor no tipo de dados BINARY que contém a sequência binária. |
Sintaxe
A seguir está a sintaxe da função CAST() no MySQL:
CAST(expression AS datatype);
Explicação do parâmetro
Esta sintaxe aceita dois parâmetros, que serão discutidos a seguir:
Parâmetro | Requerimento | Descrições |
---|---|---|
Expressão | Obrigatório | É um valor que será convertido em outro tipo de dados específico. |
Tipo de dados | Obrigatório | É um valor ou tipo de dados no qual o valor da expressão precisa ser convertido. |
Valor de retorno
Após a conversão, ele retornará um valor no tipo de dados que queremos converter.
Suporte à versão MySQL
A função CAST pode suportar as seguintes versões do MySQL:
- MySQL 8.0
- MySQL 5.7
- MySQL 5.6
- MySQL 5.5
- MySQL 5.1
- MySQL 5.0
- MySQL 4.1
- MySQL 4.0
Vamos entender a função MySQL CAST() com os exemplos a seguir. Podemos usar a função CAST diretamente com a instrução SELECT.
Exemplo 1
Esta instrução converte o valor no tipo de dados DATE.
SELECT CAST('2018-11-30' AS DATE);
Saída
Exemplo 2
Esta instrução converte o valor no tipo de dados SIGNED.
SELECT CAST(3-6 AS SIGNED);
Saída
Exemplo 3
Esta instrução converte o valor em tipo de dados UNSIGNED.
SELECT CAST(3-6 AS UNSIGNED);
Saída
Exemplo 4
Às vezes, é necessário converter explicitamente a string em um número inteiro. Use a seguinte instrução para converter o valor no tipo de dados INTEGER.
SELECT (3 + CAST('3' AS SIGNED))/2;
Saída
Exemplo 5
A instrução a seguir primeiro converte um valor inteiro em um tipo de dados string e, em seguida, executa a concatenação com outra string especificada.
SELECT CONCAT('CAST Function Example ## ',CAST(5 AS CHAR));
Saída
Exemplo 6
Neste exemplo, veremos como funciona a função CAST com a tabela. Vamos primeiro criar uma tabela ' Pedidos 'que contém os seguintes dados:
Na tabela acima, podemos ver que Order_Date está no tipo de dados DATE. Agora, se quisermos obter um nome de produto entre intervalos de tempo selecionados, execute a instrução abaixo. Aqui, a string literal é convertida em valor de carimbo de data/hora antes de avaliar a condição WHERE.
SELECT Order_ID, Product_Name FROM Orders WHERE Order_Date BETWEEN CAST('2020-02-01' AS DATETIME) AND CAST('2020-02-28' AS DATETIME);
Esta instrução produzirá a seguinte saída: