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
Esempio 2
Questa istruzione converte il valore nel tipo di dati SIGNED.
SELECT CAST(3-6 AS SIGNED);
Produzione
Esempio 3
Questa istruzione converte il valore nel tipo di dati UNSIGNED.
SELECT CAST(3-6 AS UNSIGNED);
Produzione
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
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
Esempio 6
In questo esempio vedremo come funziona la funzione CAST con la tabella. Creiamo prima una tabella ' Ordini ' che contiene i seguenti dati:
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: