CAST
Преобразует значение в указанный тип данных.
MySQL 8.1
CAST(value AS type)Параметры
- value
- Значение для преобразования
- typeключевое слово
- Целевой тип данных, у некоторых типов в скобках задаётся размер
- Значения:BINARYCHARDATEDATETIMEDECIMALDOUBLEFLOATJSONNCHARREALSIGNEDTIMEUNSIGNEDYEAR
Возвращаемое значение
Значение указанного типа; при неудачном преобразовании — 0 или NULL с предупреждением, а не ошибка
Примеры
DECIMAL с точностью и без
MySQL 8.1
SELECT CAST(12005.6 AS DECIMAL) AS rounded,
CAST(12005.6 AS DECIMAL(10, 2)) AS with_scale;Среднее с двумя знаками
MySQL 8.1
SELECT family_member,
CAST(AVG(unit_price) AS DECIMAL(10, 2)) AS avg_price
FROM Payments
GROUP BY family_member;Строки в целое число
MySQL 8.1
SELECT CAST('12abc' AS SIGNED) AS number_prefix,
CAST('abc' AS SIGNED) AS no_number;Подробности
Список целевых типов в MySQL короче, чем типов столбцов: для целого числа пишут SIGNED или UNSIGNED, а CAST(1 AS INT) — синтаксическая ошибка. Для строки — CHAR, а не VARCHAR.