MySQL'deki CAST() işlevi, bir değeri bir veri türünden ifadede belirtilen başka bir veri türüne dönüştürmek için kullanılır. Çoğunlukla WHERE, HAVING ve JOIN cümleleriyle birlikte kullanılır. Bu işlev, CONVERT() işlevine benzer. MySQL .
Bu işlevin mükemmel şekilde çalıştığı veri türleri şunlardır:
Veri tipi | Açıklamalar |
---|---|
TARİH | Değeri 'YYYY-AA-GG' formatında DATE veri türüne dönüştürür. '1000-01-01' ile '9999-12-31' arasındaki DATE aralığını destekler. |
DATETIME | Değeri 'YYYY-AA-GG SS:MM:SS' biçiminde DATETIME veri türüne dönüştürür. '1000-01-01 00:00:00' ila '9999-12-31 23:59:59' aralığını destekler. |
ZAMAN | Değeri 'SS:MM:SS' formatında TIME veri türüne dönüştürür. '-838:59:59' ile '838:59:59' arasındaki zaman aralığını destekler. |
KAR | Bir değeri, sabit uzunluklu dizeyi içeren CHAR veri türüne dönüştürür. |
ONDALIK | Bir değeri, ondalık dize içeren DECIMAL veri türüne dönüştürür. |
İMZALANDI | Bir değeri, imzalı 64 bit tamsayıyı içeren SIGNED veri türüne dönüştürür. |
İMZASIZ | Bir değeri, işaretsiz 64 bit tamsayıyı içeren UNSIGNED veri türüne dönüştürür. |
İKİLİ | Bir değeri, ikili dizeyi içeren BINARY veri türüne dönüştürür. |
Sözdizimi
MySQL'deki CAST() fonksiyonunun sözdizimi aşağıdadır:
CAST(expression AS datatype);
Parametre Açıklaması
Bu sözdizimi aşağıda tartışılacak olan iki parametreyi kabul eder:
Parametre | Gereklilik | Açıklamalar |
---|---|---|
İfade | Gerekli | Başka bir spesifik veri tipine dönüştürülecek bir değerdir. |
Veri tipi | Gerekli | İfade değerinin dönüştürülmesi gereken bir değer veya veri türüdür. |
Geri dönüş değeri
Dönüştürme sonrasında hangi veri türünde dönüştürmek istediğimiz değeri döndürecektir.
MySQL sürüm desteği
CAST işlevi aşağıdaki MySQL sürümlerini destekleyebilir:
- MySQL 8.0
- MySQL 5.7
- MySQL 5.6
- MySQL 5.5
- MySQL 5.1
- MySQL 5.0
- MySQL 4.1
- MySQL 4.0
Aşağıdaki örneklerle MySQL CAST() fonksiyonunu anlayalım. CAST fonksiyonunu doğrudan SELECT ifadesi ile kullanabiliriz.
örnek 1
Bu ifade, değeri DATE veri türüne dönüştürür.
SELECT CAST('2018-11-30' AS DATE);
Çıktı
Örnek 2
Bu ifade, değeri SIGNED veri türüne dönüştürür.
SELECT CAST(3-6 AS SIGNED);
Çıktı
Örnek 3
Bu ifade, değeri UNSIGNED veri türüne dönüştürür.
SELECT CAST(3-6 AS UNSIGNED);
Çıktı
Örnek 4
Bazen dizeyi açıkça bir tam sayıya dönüştürmeye ihtiyaç duyulur; değeri INTEGER veri türüne dönüştürmek için aşağıdaki ifadeyi kullanın.
SELECT (3 + CAST('3' AS SIGNED))/2;
Çıktı
Örnek 5
Aşağıdaki ifade önce bir tamsayı değerini dize veri türüne dönüştürür ve ardından belirtilen başka bir dizeyle birleştirme gerçekleştirir.
SELECT CONCAT('CAST Function Example ## ',CAST(5 AS CHAR));
Çıktı
Örnek 6
Bu örnekte CAST fonksiyonunun tabloyla nasıl çalıştığını göreceğiz. Önce bir tablo oluşturalım' Emirler ' aşağıdaki verileri içerir:
Yukarıdaki tabloda Order_Date veri tipinin DATE veri tipinde olduğunu görüyoruz. Şimdi seçilen zaman aralıkları arasında bir ürün adı almak istiyorsak aşağıdaki ifadeyi yürütün. Burada, WHERE koşulu değerlendirilmeden önce değişmez dize zaman damgası değerine dönüştürülür.
SELECT Order_ID, Product_Name FROM Orders WHERE Order_Date BETWEEN CAST('2020-02-01' AS DATETIME) AND CAST('2020-02-28' AS DATETIME);
Bu ifade aşağıdaki çıktıyı üretecektir: