Funkcia CAST() v MySQL sa používa na konverziu hodnoty z jedného dátového typu na iný dátový typ špecifikovaný vo výraze. Väčšinou sa používa s doložkami WHERE, HAVING a JOIN. Táto funkcia je podobná funkcii CONVERT() v MySQL .
Nasledujú dátové typy, s ktorými táto funkcia dokonale funguje:
Dátový typ | Popisy |
---|---|
DÁTUM | Skonvertuje hodnotu na dátový typ DATE vo formáte 'RRRR-MM-DD'. Podporuje rozsah DATE v '1000-01-01' až '9999-12-31'. |
DÁTUM ČAS | Skonvertuje hodnotu na typ údajov DATETIME vo formáte 'RRRR-MM-DD HH:MM:SS'. Podporuje rozsah od '1000-01-01 00:00:00' do '9999-12-31 23:59:59'. |
ČAS | Konvertuje hodnotu na typ údajov TIME vo formáte 'HH:MM:SS'. Podporuje časový rozsah od '-838:59:59' do '838:59:59'. |
CHAR | Konvertuje hodnotu na typ údajov CHAR, ktorý obsahuje reťazec s pevnou dĺžkou. |
desiatkový | Skonvertuje hodnotu na typ údajov DECIMAL, ktorý obsahuje desiatkový reťazec. |
PODPÍSANÉ | Konvertuje hodnotu na dátový typ SIGNED, ktorý obsahuje 64-bitové celé číslo so znamienkom. |
NEPOPÍSANÉ | Konvertuje hodnotu na dátový typ UNSIGNED, ktorý obsahuje 64-bitové celé číslo bez znamienka. |
BINÁRNY | Skonvertuje hodnotu na typ údajov BINARY, ktorý obsahuje binárny reťazec. |
Syntax
Nasledujú syntaxe funkcie CAST() v MySQL:
CAST(expression AS datatype);
Vysvetlenie parametra
Táto syntax akceptuje dva parametre, o ktorých sa bude diskutovať nižšie:
Parameter | Požiadavka | Popisy |
---|---|---|
Výraz | Požadovaný | Je to hodnota, ktorá sa prevedie na iný špecifický dátový typ. |
Dátový typ | Požadovaný | Je to hodnota alebo dátový typ, v ktorom je potrebné previesť hodnotu výrazu. |
Návratová hodnota
Po konverzii nám vráti hodnotu, v akom dátovom type chceme previesť.
Podpora verzie MySQL
Funkcia CAST môže podporovať nasledujúce verzie 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
Poďme pochopiť funkciu MySQL CAST() pomocou nasledujúcich príkladov. Funkciu CAST môžeme použiť priamo s príkazom SELECT.
Príklad 1
Tento príkaz skonvertuje hodnotu na dátový typ DATE.
SELECT CAST('2018-11-30' AS DATE);
Výkon
Príklad 2
Tento príkaz konvertuje hodnotu na dátový typ SIGNED.
SELECT CAST(3-6 AS SIGNED);
Výkon
Príklad 3
Tento príkaz skonvertuje hodnotu na dátový typ UNSIGNED.
SELECT CAST(3-6 AS UNSIGNED);
Výkon
Príklad 4
Niekedy je potrebné explicitne previesť reťazec na celé číslo, použite nasledujúci príkaz na prevod hodnoty na dátový typ INTEGER.
SELECT (3 + CAST('3' AS SIGNED))/2;
Výkon
Príklad 5
Nasledujúci príkaz najprv skonvertuje celočíselnou hodnotu na dátový typ reťazca a potom vykoná zreťazenie s iným zadaným reťazcom.
SELECT CONCAT('CAST Function Example ## ',CAST(5 AS CHAR));
Výkon
Príklad 6
V tomto príklade uvidíme, ako funkcia CAST pracuje s tabuľkou. Najprv vytvoríme tabuľku ' objednávky “, ktorý obsahuje nasledujúce údaje:
Vo vyššie uvedenej tabuľke vidíme, že Order_Date je v dátovom type DATE. Teraz, ak chceme získať názov produktu medzi vybranými časovými intervalmi, vykonajte príkaz uvedený nižšie. Tu sa doslovný reťazec pred vyhodnotením podmienky WHERE prevedie na hodnotu časovej značky.
SELECT Order_ID, Product_Name FROM Orders WHERE Order_Date BETWEEN CAST('2020-02-01' AS DATETIME) AND CAST('2020-02-28' AS DATETIME);
Toto vyhlásenie vytvorí nasledujúci výstup: