Следующий

Функция CAST в MySQL Преобразование типов данных в базах данных

4 Просмотры· 06/18/20
Кирилл Антонов
Кирилл Антонов
Подписчики
0

Рубрика по базам данных: http://zametkinapolyah.ru/zametki-o-mysql/sqlite/
Рубрика MySQL: http://zametkinapolyah.ru/zame....tki-o-mysql/server-m
Паблик блога в ВК: 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 зависит от многих факторов: версии компилятора, архитектуры процессора, версии операционной системы и др.

Показать больше

 0 Комментарии sort   Сортировать


Следующий