Функция 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 зависит от многих факторов: версии компилятора, архитектуры процессора, версии операционной системы и др.

ПРИСОЕДИНЯЙТЕСЬ
Поделиться

Кирилл Антонов

Канал для начинающего веб-разработчика. Здесь ты найдешь различные видео уроки о технологиях и программном обеспечение, которые используют веб-разработчики.



Обсуждение закрыто.