Функции для работы с числами

Последнее обновление: 26.05.2018

Для работы с числовыми данными 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;
Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850