Funkce CAST() v MySQL se používá k převodu hodnoty z jednoho datového typu na jiný datový typ specifikovaný ve výrazu. Většinou se používá s klauzulemi WHERE, HAVING a JOIN. Tato funkce je podobná funkci CONVERT() v MySQL .
Níže jsou uvedeny datové typy, se kterými tato funkce dokonale funguje:
Datový typ | Popisy |
---|---|
DATUM | Převede hodnotu na datový typ DATE ve formátu 'RRRR-MM-DD'. Podporuje rozsah DATE v '1000-01-01' až '9999-12-31'. |
ČAS SCHŮZKY | Převede hodnotu na datový typ DATETIME ve formátu 'RRRR-MM-DD HH:MM:SS'. Podporuje rozsah v '1000-01-01 00:00:00' až '9999-12-31 23:59:59'. |
ČAS | Převádí hodnotu na datový typ TIME ve formátu 'HH:MM:SS'. Podporuje časový rozsah '-838:59:59' až '838:59:59'. |
CHAR | Převede hodnotu na datový typ CHAR, který obsahuje řetězec pevné délky. |
DESETINNÝ | Převede hodnotu na datový typ DECIMAL, který obsahuje desítkový řetězec. |
PODEPSANÝ | Převede hodnotu na datový typ SIGNED, který obsahuje 64bitové celé číslo se znaménkem. |
NEPODEPSANÝ | Převede hodnotu na datový typ UNSIGNED, který obsahuje 64bitové celé číslo bez znaménka. |
BINÁRNÍ | Převede hodnotu na datový typ BINARY, který obsahuje binární řetězec. |
Syntax
Následuje syntaxe funkce CAST() v MySQL:
CAST(expression AS datatype);
Vysvětlení parametru
Tato syntaxe přijímá dva parametry, o kterých budeme diskutovat níže:
Parametr | Požadavek | Popisy |
---|---|---|
Výraz | Požadované | Je to hodnota, která bude převedena na jiný konkrétní datový typ. |
Datový typ | Požadované | Je to hodnota nebo datový typ, ve kterém je třeba převést hodnotu výrazu. |
Návratová hodnota
Po převodu vrátí hodnotu, v jakém datovém typu chceme převést.
Podpora verze MySQL
Funkce CAST může podporovat následující verze 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
Pojďme pochopit funkci MySQL CAST() pomocí následujících příkladů. Přímo můžeme použít funkci CAST s příkazem SELECT.
Příklad 1
Tento příkaz převede hodnotu na datový typ DATE.
SELECT CAST('2018-11-30' AS DATE);
Výstup
Příklad 2
Tento příkaz převede hodnotu na datový typ SIGNED.
SELECT CAST(3-6 AS SIGNED);
Výstup
Příklad 3
Tento příkaz převede hodnotu na datový typ UNSIGNED.
SELECT CAST(3-6 AS UNSIGNED);
Výstup
Příklad 4
Někdy je potřeba explicitně převést řetězec na celé číslo, pro převod hodnoty na datový typ INTEGER použijte následující příkaz.
SELECT (3 + CAST('3' AS SIGNED))/2;
Výstup
Příklad 5
Následující příkaz nejprve převede celočíselnou hodnotu na datový typ řetězce a poté provede zřetězení s jiným zadaným řetězcem.
SELECT CONCAT('CAST Function Example ## ',CAST(5 AS CHAR));
Výstup
Příklad 6
V tomto příkladu uvidíme, jak funkce CAST pracuje s tabulkou. Nejprve vytvoříme tabulku ' Objednávky “, který obsahuje následující údaje:
Ve výše uvedené tabulce vidíme, že Order_Date je v datovém typu DATE. Nyní, pokud chceme získat název produktu mezi vybranými časovými obdobími, proveďte níže uvedený příkaz. Zde je doslovný řetězec převeden na hodnotu časového razítka před vyhodnocením podmínky 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);
Tento příkaz vytvoří následující výstup: