La funció CAST() a MySQL s'utilitza per convertir un valor d'un tipus de dades a un altre tipus de dades especificat a l'expressió. S'utilitza principalment amb les clàusules WHERE, HAVING i JOIN. Aquesta funció és similar a la funció CONVERT() a MySQL .
Els següents són els tipus de dades amb els quals funciona perfectament aquesta funció:
Tipus de dades | Descripcions |
---|---|
DATA | Converteix el valor al tipus de dades DATE en el format 'AAAA-MM-DD'. Admet l'interval de DATE de '1000-01-01' a '9999-12-31'. |
DATA I HORA | Converteix el valor al tipus de dades DATETIME en el format 'AAAA-MM-DD HH:MM:SS'. Admet el rang de '1000-01-01 00:00:00' a '9999-12-31 23:59:59'. |
TEMPS | Converteix el valor al tipus de dades TIME en el format 'HH:MM:SS'. Admet el rang de temps entre '-838:59:59' i '838:59:59'. |
CHAR | Converteix un valor al tipus de dades CHAR que conté la cadena de longitud fixa. |
DECIMAL | Converteix un valor al tipus de dades DECIMAL que conté una cadena decimal. |
SIGNAT | Converteix un valor a un tipus de dades SIGNED que conté l'enter signat de 64 bits. |
SENS SIGNAT | Converteix un valor al tipus de dades UNSIGNED que conté l'enter sense signar de 64 bits. |
BINARI | Converteix un valor al tipus de dades BINARY que conté la cadena binària. |
Sintaxi
Les següents són la sintaxi de la funció CAST() a MySQL:
CAST(expression AS datatype);
Explicació del paràmetre
Aquesta sintaxi accepta dos paràmetres, que es comentaran a continuació:
Paràmetre | Requisit | Descripcions |
---|---|---|
Expressió | Obligatori | És un valor que es convertirà en un altre tipus de dades específic. |
Tipus de dades | Obligatori | És un valor o tipus de dades en què s'ha de convertir el valor de l'expressió. |
Valor de retorn
Després de la conversió, retornarà un valor en quin tipus de dades volem convertir.
Suport a la versió MySQL
La funció CAST pot suportar les següents versions de 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
Entenem la funció MySQL CAST() amb els exemples següents. Podem utilitzar la funció CAST amb la instrucció SELECT directament.
Exemple 1
Aquesta instrucció converteix el valor al tipus de dades DATE.
SELECT CAST('2018-11-30' AS DATE);
Sortida
Exemple 2
Aquesta declaració converteix el valor al tipus de dades SIGNED.
SELECT CAST(3-6 AS SIGNED);
Sortida
Exemple 3
Aquesta instrucció converteix el valor en un tipus de dades UNSIGNED.
SELECT CAST(3-6 AS UNSIGNED);
Sortida
Exemple 4
De vegades és necessari convertir la cadena en un nombre enter de manera explícita, utilitzeu la següent instrucció per convertir el valor en un tipus de dades INTEGER.
SELECT (3 + CAST('3' AS SIGNED))/2;
Sortida
Exemple 5
La instrucció següent converteix primer un valor enter en un tipus de dades de cadena i després realitza la concatenació amb una altra cadena especificada.
SELECT CONCAT('CAST Function Example ## ',CAST(5 AS CHAR));
Sortida
Exemple 6
En aquest exemple, veurem com funciona la funció CAST amb la taula. Creem primer una taula' Comandes ' que conté les dades següents:
A la taula anterior, podem veure que Order_Date es troba al tipus de dades DATE. Ara, si volem obtenir un nom de producte entre intervals de temps seleccionats, executeu la instrucció següent. Aquí, la cadena literal es converteix en valor de marca de temps abans d'avaluar la condició ON.
SELECT Order_ID, Product_Name FROM Orders WHERE Order_Date BETWEEN CAST('2020-02-01' AS DATETIME) AND CAST('2020-02-28' AS DATETIME);
Aquesta declaració produirà la següent sortida: