Funkcija CAST() u MySQL-u koristi se za pretvaranje vrijednosti iz jedne vrste podataka u drugu vrstu podataka navedenu u izrazu. Uglavnom se koristi s rečenicama WHERE, HAVING i JOIN. Ova je funkcija slična funkciji CONVERT() u MySQL .
Sljedeći su tipovi podataka na kojima ova funkcija radi savršeno:
Tip podataka | Opisi |
---|---|
DATUM | Pretvara vrijednost u tip podataka DATE u formatu 'GGGG-MM-DD'. Podržava raspon DATUMA od '1000-01-01' do '9999-12-31'. |
DATUM VRIJEME | Pretvara vrijednost u tip podataka DATETIME u formatu 'GGGG-MM-DD HH:MM:SS'. Podržava raspon od '1000-01-01 00:00:00' do '9999-12-31 23:59:59'. |
VRIJEME | Pretvara vrijednost u tip podataka VRIJEME u formatu 'HH:MM:SS'. Podržava raspon vremena od '-838:59:59' do '838:59:59'. |
CHAR | Pretvara vrijednost u tip podataka CHAR koji sadrži niz fiksne duljine. |
DECIMAL | Pretvara vrijednost u tip podataka DECIMAL koji sadrži decimalni niz. |
POTPISAN | Pretvara vrijednost u tip podataka SIGNED koji sadrži potpisani 64-bitni cijeli broj. |
NEPOTPISAN | Pretvara vrijednost u tip podataka UNSIGNED koji sadrži 64-bitni cijeli broj bez predznaka. |
BINARNI | Pretvara vrijednost u tip podataka BINARY koji sadrži binarni niz. |
Sintaksa
Sljedeća je sintaksa funkcije CAST() u MySQL-u:
CAST(expression AS datatype);
Parametar Objašnjenje
Ova sintaksa prihvaća dva parametra o kojima će se raspravljati u nastavku:
Parametar | Zahtjev | Opisi |
---|---|---|
Izraz | Potreban | To je vrijednost koja će se pretvoriti u drugu specifičnu vrstu podataka. |
Tip podataka | Potreban | To je vrijednost ili tip podataka u koji treba pretvoriti vrijednost izraza. |
Povratna vrijednost
Nakon konverzije, vratit će vrijednost u koju vrstu podataka želimo pretvoriti.
Podrška za MySQL verziju
Funkcija CAST može podržati sljedeće MySQL verzije:
- MySQL 8.0
- MySQL 5.7
- MySQL 5.6
- MySQL 5.5
- MySQL 5.1
- MySQL 5.0
- MySQL 4.1
- MySQL 4.0
Razmotrimo funkciju MySQL CAST() pomoću sljedećih primjera. Funkciju CAST možemo izravno koristiti s naredbom SELECT.
Primjer 1
Ova izjava pretvara vrijednost u tip podataka DATE.
SELECT CAST('2018-11-30' AS DATE);
Izlaz
Primjer 2
Ova izjava pretvara vrijednost u tip podataka SIGNED.
SELECT CAST(3-6 AS SIGNED);
Izlaz
Primjer 3
Ova izjava pretvara vrijednost u tip podataka UNSIGNED.
SELECT CAST(3-6 AS UNSIGNED);
Izlaz
Primjer 4
Ponekad postoji potreba za eksplicitnim pretvaranjem niza u cijeli broj, upotrijebite sljedeću izjavu za pretvaranje vrijednosti u tip podataka INTEGER.
SELECT (3 + CAST('3' AS SIGNED))/2;
Izlaz
Primjer 5
Sljedeća izjava prvo pretvara cjelobrojnu vrijednost u tip podataka niza, a zatim izvodi ulančavanje s drugim navedenim nizom.
SELECT CONCAT('CAST Function Example ## ',CAST(5 AS CHAR));
Izlaz
Primjer 6
U ovom primjeru ćemo vidjeti kako funkcija CAST radi s tablicom. Prvo napravimo tablicu ' Narudžbe ' koji sadrži sljedeće podatke:
U gornjoj tablici možemo vidjeti da je Order_Date tipa podataka DATE. Sada, ako želimo dobiti naziv proizvoda između odabranih raspona vremena, izvršite naredbu u nastavku. Ovdje se literalni niz pretvara u vrijednost vremenske oznake prije evaluacije uvjeta 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);
Ova izjava će proizvesti sljedeći izlaz: