Функцията CAST() в MySQL се използва за преобразуване на стойност от един тип данни в друг тип данни, посочени в израза. Използва се най-вече с клаузи WHERE, HAVING и JOIN. Тази функция е подобна на функцията CONVERT() в MySQL .
По-долу са типовете данни, с които тази функция работи перфектно:
Тип данни | Описания |
---|---|
ДАТА | Той преобразува стойността в тип данни ДАТА във формат „ГГГГ-ММ-ДД“. Поддържа диапазона от ДАТА в '1000-01-01' до '9999-12-31'. |
ВРЕМЕ ЗА СРЕЩА | Той преобразува стойността в типа данни DATETIME във формат „ГГГГ-ММ-ДД ЧЧ:ММ:СС“. Поддържа диапазона от „1000-01-01 00:00:00“ до „9999-12-31 23:59:59“. |
ВРЕМЕ | Той преобразува стойността в тип данни TIME във формат „ЧЧ:ММ:СС“. Поддържа диапазона от време от „-838:59:59“ до „838:59:59“. |
CHAR | Той преобразува стойност в типа данни CHAR, който съдържа низа с фиксирана дължина. |
ДЕСЕТИЧНА | Той преобразува стойност в типа данни DECIMAL, който съдържа десетичен низ. |
ПОДПИСАН | Той преобразува стойност в тип данни SIGNED, който съдържа 64-битово цяло число със знак. |
НЕПОДПИСАН | Той преобразува стойност в типа данни UNSIGNED, който съдържа 64-битово цяло число без знак. |
ДВОИЧЕН | Той преобразува стойност в типа данни BINARY, който съдържа двоичния низ. |
Синтаксис
Следва синтаксисът на функцията CAST() в MySQL:
CAST(expression AS datatype);
Параметър Обяснение
Този синтаксис приема два параметъра, които ще бъдат обсъдени по-долу:
Параметър | Изискване | Описания |
---|---|---|
Изразяване | Задължително | Това е стойност, която ще бъде преобразувана в друг специфичен тип данни. |
Тип данни | Задължително | Това е стойност или тип данни, в които стойността на израза трябва да бъде преобразувана. |
Върната стойност
След преобразуването ще върне стойност, в кой тип данни искаме да конвертираме.
Поддръжка на MySQL версия
Функцията CAST може да поддържа следните версии на 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
Нека разберем функцията MySQL CAST() със следните примери. Можем да използваме функцията CAST с командата SELECT директно.
Пример 1
Този оператор преобразува стойността в тип данни DATE.
SELECT CAST('2018-11-30' AS DATE);
Изход
Пример 2
Този оператор преобразува стойността в тип данни SIGNED.
SELECT CAST(3-6 AS SIGNED);
Изход
Пример 3
Този оператор преобразува стойността в тип данни UNSIGNED.
SELECT CAST(3-6 AS UNSIGNED);
Изход
Пример 4
Понякога има нужда от изрично преобразуване на низа в цяло число, използвайте следния оператор за преобразуване на стойността в тип данни INTEGER.
SELECT (3 + CAST('3' AS SIGNED))/2;
Изход
Пример 5
Следният оператор първо преобразува целочислена стойност в низов тип данни и след това извършва конкатенация с друг определен низ.
SELECT CONCAT('CAST Function Example ## ',CAST(5 AS CHAR));
Изход
Пример 6
В този пример ще видим как функцията CAST работи с таблицата. Нека първо създадем таблица ' Поръчки “, който съдържа следните данни:
В горната таблица можем да видим, че Order_Date е в тип данни DATE. Сега, ако искаме да получим име на продукт между избрани диапазони от време, изпълнете оператора по-долу. Тук буквалният низ се преобразува в стойност на клеймо за време, преди да се оцени условието 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);
Това изявление ще доведе до следния резултат: