Для работы с числовыми данными MySQL предоставляет ряд функций:
- ROUND: округляет число. В качестве первого параметра передается число. Второй параметр указывает на длину. Если длина представляет положительное число, то оно указывает, до какой цифры после запятой идет округление. Если длина представляет отрицательное число, то оно указывает, до какой цифры с конца числа до запятой идет округление12
SELECTROUND(1342.345, 2),-- 1342.35(SELECTROUND(1342.345, -2));-- 1300; - TRUNCATE: оставляет в дробной части определенное количество символов1
SELECTTRUNCATE(1342.345, 2);-- 1342.34 - ABS: возвращает абсолютное значение числа.1
SELECTABS(-123)-- 123 - CEILING: возвращает наименьшее целое число, которое больше или равно текущему значению.12
SELECTCEILING(-123.45),-- -123(SELECTCEILING(123.45));-- 124 - FLOOR: возвращает наибольшее целое число, которое меньше или равно текущему значению.12
SELECTFLOOR(-123.45),-- -124(SELECTFLOOR(123.45));-- 123 - POWER: возводит число в определенную степень.12
SELECTPOWER(5, 2),-- 25(SELECTPOWER(5, 3));-- 125 - SQRT: получает квадратный корень числа.1
SELECTSQRT(225);-- 15 - SIGN: возвращает -1, если число меньше 0, и возвращает 1, если число больше 0. Если число равно 0, то возвращает 0.12
SELECTSIGN(-5),-- -1(SELECTSIGN(7));-- 1 - RAND: генерирует случайное число с плавающей точкой в диапазоне от 0 до 1.12
SELECTRAND();-- 0.707365088352935SELECTRAND();-- 0.173808327956812
Например, возьмем таблицу:
| 1 2 3 4 5 6 7 8 | 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); |
Округлим произведение цены товара на количество этого товара:
| 1 2 | SELECT ProductName, ROUND(Price * ProductCount, 2)FROM Products; |