logo

Funzione MySQL CAST()

La funzione CAST() in MySQL viene utilizzata per convertire un valore da un tipo di dati a un altro tipo di dati specificato nell'espressione. Viene utilizzato principalmente con le clausole WHERE, HAVING e JOIN. Questa funzione è simile alla funzione CONVERT() in MySQL .

Di seguito sono riportati i tipi di dati su cui questa funzione funziona perfettamente:

Tipo di dati Descrizioni
DATA Converte il valore nel tipo di dati DATE nel formato 'AAAA-MM-GG'. Supporta l'intervallo di DATA compreso tra '1000-01-01' e '9999-12-31'.
APPUNTAMENTO Converte il valore nel tipo di dati DATETIME nel formato 'AAAA-MM-GG HH:MM:SS'. Supporta l'intervallo compreso tra '1000-01-01 00:00:00' e '9999-12-31 23:59:59'.
TEMPO Converte il valore nel tipo di dati TIME nel formato 'HH:MM:SS'. Supporta l'intervallo di tempo compreso tra '-838:59:59' e '838:59:59'.
CAR Converte un valore nel tipo di dati CHAR che contiene la stringa a lunghezza fissa.
DECIMALE Converte un valore nel tipo di dati DECIMAL che contiene una stringa decimale.
FIRMATO Converte un valore nel tipo di dati SIGNED che contiene l'intero con segno a 64 bit.
NON FIRMATO Converte un valore nel tipo di dati UNSIGNED che contiene l'intero a 64 bit senza segno.
BINARIO Converte un valore nel tipo di dati BINARY che contiene la stringa binaria.

Sintassi

Di seguito è riportata la sintassi della funzione CAST() in MySQL:

 CAST(expression AS datatype); 

Parametro Spiegazione

Questa sintassi accetta due parametri, che verranno discussi di seguito:

Parametro Requisiti Descrizioni
Espressione Necessario È un valore che verrà convertito in un altro tipo di dati specifico.
Tipo di dati Necessario È un valore o un tipo di dati in cui il valore dell'espressione deve essere convertito.

Valore di ritorno

Dopo la conversione, restituirà un valore in quale tipo di dati vogliamo convertire.

Supporto della versione MySQL

La funzione CAST può supportare le seguenti versioni di 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

Cerchiamo di comprendere la funzione MySQL CAST() con i seguenti esempi. Possiamo usare la funzione CAST direttamente con l'istruzione SELECT.

Esempio 1

Questa istruzione converte il valore nel tipo di dati DATE.

 SELECT CAST('2018-11-30' AS DATE); 

Produzione

Funzione MySQL CAST()

Esempio 2

Questa istruzione converte il valore nel tipo di dati SIGNED.

 SELECT CAST(3-6 AS SIGNED); 

Produzione

Funzione MySQL CAST()

Esempio 3

Questa istruzione converte il valore nel tipo di dati UNSIGNED.

 SELECT CAST(3-6 AS UNSIGNED); 

Produzione

Funzione MySQL CAST()

Esempio 4

A volte è necessario convertire esplicitamente la stringa in un numero intero, utilizzare la seguente istruzione per convertire il valore nel tipo di dati INTEGER.

 SELECT (3 + CAST('3' AS SIGNED))/2; 

Produzione

Funzione MySQL CAST()

Esempio 5

La seguente istruzione converte prima un valore intero nel tipo di dati stringa e quindi esegue la concatenazione con un'altra stringa specificata.

 SELECT CONCAT('CAST Function Example ## ',CAST(5 AS CHAR)); 

Produzione

Funzione MySQL CAST()

Esempio 6

In questo esempio vedremo come funziona la funzione CAST con la tabella. Creiamo prima una tabella ' Ordini ' che contiene i seguenti dati:

Funzione MySQL CAST()

Nella tabella sopra, possiamo vedere che Order_Date è nel tipo di dati DATE. Ora, se vogliamo ottenere il nome di un prodotto tra intervalli di tempo selezionati, eseguiamo l'istruzione seguente. In questo caso, la stringa letterale viene convertita nel valore timestamp prima di valutare la condizione 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); 

Questa istruzione produrrà il seguente output:

Funzione MySQL CAST()