Для работы с числовыми данными MySQL предоставляет ряд функций:
ROUND: округляет число. В качестве первого параметра передается число. Второй параметр указывает на длину. Если длина представляет положительное число, то оно указывает, до какой цифры после запятой идет округление. Если длина представляет отрицательное число, то оно указывает, до какой цифры с конца числа до запятой идет округление
SELECT ROUND(1342.345, 2), -- 1342.35 (SELECT ROUND(1342.345, -2)); -- 1300;
TRUNCATE: оставляет в дробной части определенное количество символов
SELECT TRUNCATE(1342.345, 2); -- 1342.34
ABS: возвращает абсолютное значение числа.
SELECT ABS(-123) -- 123
CEILING: возвращает наименьшее целое число, которое больше или равно текущему значению.
SELECT CEILING(-123.45), -- -123 (SELECT CEILING(123.45)); -- 124
FLOOR: возвращает наибольшее целое число, которое меньше или равно текущему значению.
SELECT FLOOR(-123.45), -- -124 (SELECT FLOOR(123.45)); -- 123
POWER: возводит число в определенную степень.
SELECT POWER(5, 2), -- 25 (SELECT POWER(5, 3)); -- 125
SQRT: получает квадратный корень числа.
SELECT SQRT(225); -- 15
SIGN: возвращает -1, если число меньше 0, и возвращает 1, если число больше 0. Если число равно 0, то возвращает 0.
SELECT SIGN(-5), -- -1 (SELECT SIGN(7)); -- 1
RAND: генерирует случайное число с плавающей точкой в диапазоне от 0 до 1.
SELECT RAND(); -- 0.707365088352935 SELECT RAND(); -- 0.173808327956812
Например, возьмем таблицу:
CREATE TABLE Products ( Id INT AUTO_INCREMENT PRIMARY KEY, ProductName VARCHAR(30) NOT NULL, Manufacturer VARCHAR(20) NOT NULL, ProductCount INT DEFAULT 0, Price DECIMAL NOT NULL );
Округлим произведение цены товара на количество этого товара:
SELECT ProductName, ROUND(Price * ProductCount, 2) FROM Products;