MySQL:n CAST()-funktiota käytetään arvon muuntamiseen yhdestä tietotyypistä toiseen lausekkeessa määritettyyn tietotyyppiin. Sitä käytetään enimmäkseen WHERE-, HAVING- ja JOIN-lauseiden kanssa. Tämä funktio on samanlainen kuin CONVERT()-funktio in MySQL .
Seuraavat ovat tietotyypit, joissa tämä toiminto toimii täydellisesti:
Tietotyyppi | Kuvaukset |
---|---|
PÄIVÄMÄÄRÄ | Se muuntaa arvon DATE-tietotyypiksi muodossa VVVV-KK-PP. Se tukee aluetta DATE välillä '1000-01-01' - '9999-12-31'. |
TREFFIAIKA | Se muuntaa arvon DATETIME-tietotyypiksi muodossa 'VVVV-KK-PP HH:MM:SS'. Se tukee aluetta 1000-01-01 00:00:00 - 9999-12-31 23:59:59. |
AIKA | Se muuntaa arvon TIME-tietotyypiksi muodossa HH:MM:SS. Se tukee aikaväliä '-838:59:59' - '838:59:59'. |
HIILTYÄ | Se muuntaa arvon CHAR-tietotyypiksi, joka sisältää kiinteän pituisen merkkijonon. |
DESIMAALI | Se muuntaa arvon DECIMAL-tietotyypiksi, joka sisältää desimaalimerkkijonon. |
Allekirjoitettu | Se muuntaa arvon SIGNED-tietotyypiksi, joka sisältää etumerkillisen 64-bittisen kokonaisluvun. |
Allekirjoittamaton | Se muuntaa arvon UNSSIGNED-tietotyypiksi, joka sisältää etumerkittömän 64-bittisen kokonaisluvun. |
BINÄÄRI | Se muuntaa arvon BINARY-tietotyypiksi, joka sisältää binäärimerkkijonon. |
Syntaksi
Seuraavassa on CAST()-funktion syntaksi MySQL:ssä:
CAST(expression AS datatype);
Parametrin selitys
Tämä syntaksi hyväksyy kaksi parametria, joita käsitellään alla:
Parametri | Vaatimus | Kuvaukset |
---|---|---|
Ilmaisu | Edellytetään | Se on arvo, joka muunnetaan toiseksi tietyksi tietotyypiksi. |
Tietotyyppi | Edellytetään | Se on arvo tai tietotyyppi, jossa lausekkeen arvo on muutettava. |
Palautusarvo
Muuntamisen jälkeen se palauttaa arvon, jonka tietotyypin haluamme muuntaa.
MySQL-version tuki
CAST-toiminto voi tukea seuraavia MySQL-versioita:
- MySQL 8.0
- MySQL 5.7
- MySQL 5.6
- MySQL 5.5
- MySQL 5.1
- MySQL 5.0
- MySQL 4.1
- MySQL 4.0
Ymmärrämme MySQL CAST() -funktion seuraavien esimerkkien avulla. Voimme käyttää CAST-funktiota suoraan SELECT-käskyn kanssa.
Esimerkki 1
Tämä lauseke muuntaa arvon DATE-tietotyypiksi.
SELECT CAST('2018-11-30' AS DATE);
Lähtö
Esimerkki 2
Tämä lauseke muuntaa arvon SIGNED-tietotyypiksi.
SELECT CAST(3-6 AS SIGNED);
Lähtö
Esimerkki 3
Tämä lauseke muuntaa arvon UNINSIGNED-tietotyypiksi.
SELECT CAST(3-6 AS UNSIGNED);
Lähtö
Esimerkki 4
Joskus on tarve muuntaa merkkijono nimenomaisesti kokonaisluvuksi, käytä seuraavaa käskyä arvon muuntamiseen INTEGER-tietotyypiksi.
SELECT (3 + CAST('3' AS SIGNED))/2;
Lähtö
Esimerkki 5
Seuraava käsky muuntaa ensin kokonaisluvun arvon merkkijonotietotyypiksi ja suorittaa sitten ketjutuksen toisen määritetyn merkkijonon kanssa.
SELECT CONCAT('CAST Function Example ## ',CAST(5 AS CHAR));
Lähtö
Esimerkki 6
Tässä esimerkissä aiomme nähdä, kuinka CAST-funktio toimii taulukon kanssa. Luokaamme ensin taulukko Tilaukset ', joka sisältää seuraavat tiedot:
Yllä olevasta taulukosta voimme nähdä, että tilauspäivämäärä on DATE-tietotyypissä. Nyt, jos haluamme saada tuotteen nimen valittujen aikajaksojen väliin, suorita alla oleva lauseke. Tässä kirjaimellinen merkkijono muunnettiin aikaleimaarvoksi ennen WHERE-ehdon arviointia.
SELECT Order_ID, Product_Name FROM Orders WHERE Order_Date BETWEEN CAST('2020-02-01' AS DATETIME) AND CAST('2020-02-28' AS DATETIME);
Tämä lausunto tuottaa seuraavan tuloksen: