Функции MySQL


Математические функции



Вычисление площади треугольников


Вычисление площадей треугольников
SELECT A*B*SIN(RADIANS(angle))/2.0 AS S FROM triangle;

Округление результата вычисления до третьего знака после запятой
SELECT ROUND(A*B*SIN(RADIANS(angle))/2.0, 3) AS S FROM triangle;

CEILING()/CEIL() возвращает первое целое число, которое встречает справа от
значения аргумента
SELECT CEILING(0.49), CEILING(1.51), CEIL(-0.49), CEIL(-1.51);

FLOOR() принимает дробное число Х и возвращает максимальное
целое значение, не больше чем Х.
SELECT FLOOR(0.49), FLOOR(1.51), FLOOR(-0.49), FLOOR(-1.51);

TRUNCATE (Х , О ) , которая возвращает число х с дробной частью, имеющей O
знаков после запятой. Если количество знаков после запятой в числе х боль­ше О,
лишние разряды усекаются, если меньше, то в конец числа добавляют­ся нули
SELECT TRUNCATE(1.284, 0), TRUNCATE(1.284, 1), TRUNCATE(1.284, 4);

Функции даты и времени



Форматирование календарных значений




SELECT fio, (TO_DAYS(NOW()) - TO_DAYS(putdate))/365.25 AS putdate FROM tbl1;
SELECT fio, FLOOR((TO_DAYS(NOW()) - TO_DAYS(putdate))/365.25) AS putdate FROM tbl1;

Прео6разование даты в UNIХSТАМР-формат


Для преобразо­вания MySQL-даты в UNIXSTАМР-формат используется функция
UNIX_TIMESTAМP ( [ date_time ] )

SELECT UNIX_TIMESTAMP(), UNIX_TIMESTAMP('1997-10-04 22:18:56');

Функция FROM_UN IXT IME (unix _times tamp) решает обратную задачу : прини­
мает число секунд, прошедших с полуночи 1 января 970 года, и возвращает
дату и время суток в виде строки 'YYYY-MM-DD hh:mm:ss' или В виде числа
YYYYMMDDhhmmss в зависим ости от того, вызвана функция в строковом или
числовом контексте
SELECT FROM_UNIXTIME(1389208775), FROM_UNIXTIME(0);

Функция FROM_UNIXTIME (unix_ timestamp , format) может принимать второй
параметр format
SELECT FROM_UNIXTIME(1389208775, 'В %Y году контракт заканчивается');

Строковые функции


http://dev.mysql.com/doc/refman/5.5/en/string-functions.html

Изменение кодировки строки


Функция CONVERT (expr USING charset) преобразует текст из одной
кодировки в другую
SELECT CONVERT ('База данных MySQL' USING koi8r);

Иногда требуется не преобразовать строку из одной кодировки в другую при
помощи функции CONVERT ( ) , а указать ее кодировку: это осуществляется при
помощи так называемого представителя : имени кодировки, начинающегося
с символа подчеркивания
SELECT _koi8r'База данных MySQL';

Первые несколько символов строки
SELECT SUBSTRING(fio,1,5) FROM tbl1;

Извлечение инициалов
Создание таблицы

SELECT CONCAT(surname, ' ',
SUBSTRING(name,1,1), '.',
SUBSTRING(patronymic,1,1), '.') AS fio

FROM tbl2;


Изменение регистра строки
UPDATE tbl2 SET surname = UPPER(surname),
name = UPPER(name),
patronymic = UPPER(patronymic);
SELECT * FROM tbl2;


Преобразование строки в верхний регистр осу­ществляется
при помощи функции UPPER(); для решения обратной задач и
предназначена функция LOWER()
UPDATE tbl2 SET surname = LOWER(surname),
name = LOWER(name),
patronymic = LOWER(patronymic);
SELECT * FROM tbl2;


Перевод первого символа в верхний регистр
UPDATE tbl2 SET
surname = CONCAT(UPPER(SUBSTRING(surname, 1, 1)), SUBSTRING(surname,2)),
name = CONCAT(UPPER(SUBSTRING(name, 1, 1)), SUBSTRING(name,2)),
patronymic = CONCAT(UPPER(SUBSTRING(patronymic, 1, 1)), SUBSTRING(patronymic,2));
SELECT * FROM tbl2;