Функция CAST в MySQL Преобразование типов данных в базах данных
Рубрика по базам данных: http://zametkinapolyah.ru/zametki-o-mysql/sqlite/
Рубрика MySQL: http://zametkinapolyah.ru/zametki-o-mysql/server-mysql
Паблик блога в ВК: https://vk.com/zametkinapolyah
Тематическая группа в ВК: https://vk.com/zametki_bd
Помощь проекту:
WMR: R288272666982
WMZ: Z293550531456
Яндекс.Деньги: 410011531129223
— MySQL сервер умеет делать преобразование строки в число автоматически
— все зависит от контекста операции. Такое преобразование обычно называют неявным.
SELECT 1+’10’;
SELECT 1+’10a’;
SELECT 1+’10a25′;
SELECT 1+’a10a’;
SELECT CONCAT(2, ” test string!”);
— Число в строку в базах данных MySQL сервера можно преобразовать явно, используя
— специальную функцию CAST().
— Функция CAST принимает ровно два аргумента: первый аргумент – это значение, которое необходимо преобразовать, второй аргумент – это тип данных, в который конвертируется значение.
SELECT 38.8, CAST(38.8 AS CHAR);
SELECT 38.8, CAST(38.8 AS CHAR(1));
SELECT 38.8, CONCAT(38.8);
— Кроме того, выполнении операций сравнения, MySQL сервер пытается привести значенияя разных типов данных к одному, если такое вообще возможно, а затем сравнивать их. Но об этом мы уже говорили, ссылка будет в описании.
— Поскольку числа с плавающей точкой не всегда могут быть представлены точно, мы можем получить неожиданные результаты при сравнении значений таких чисел.
SELECT ‘28015376320243458’ = 28015376320243458;
SELECT ‘28015376320243459’ = 28015376320243489;
— Такое поведение MySQL сервера связано с тем, что происходит округление чисел:
SELECT ‘28015376320243459’+0.0;
— Чтобы избежать таких ошибок, выполняйте явные преобразования строки в число, используя функцию CAST():
SELECT CAST(‘28015376320243459’ AS UNSIGNED) = 28015376320243459;
— Точность преобразований и округлений чисел в MySQL зависит от многих факторов: версии компилятора, архитектуры процессора, версии операционной системы и др.
Последние сообщения
127 полезных и бесплатных онлайн академий
24.04.2019