Оператор деления c остатком, или целочисленного деления. Возвращает целую часть частного от деления a на b. Например,:
• 7 DIV 2 = 3,
• (-7) DIV 2 = -3,
• 7 DIV (-2) = -3,
• (-7) DIV (-2) = 3.
• a % b.
Оператор вычисления остатка. Возвращает остаток от целочисленного деления a на b: величину a % b = a – b x (a DIV b). Например,:
• 7 % 2 = 1,
• (– 7) % 2 = -1,
• 7 % (-2) = 1,
• (-7) % (-2) = -1.
В следующем подразделе мы рассмотрим алгебраические функции.
Алгебраические функции
В выражениях вы можете использовать следующие алгебраические функции:
• ABS(x).
Возвращает абсолютную величину (модуль) числа x. Например, ABS(10) = ABS(-10) = 10.
• CEIL(x), CEILING(x).
Функция округления в большую сторону. Возвращает наименьшее из целых чисел, которые больше или равны x. Например,:
• CEIL(12345.6789) = 12346,
• CEIL(-12345.6789) = -12345.
• CRC32(\'Символьное значение\').
Функция вычисляет контрольную сумму для последовательности символов с помощью алгоритма CRC32. Подробнее об алгоритмах CRC вы можете прочитать здесь: http://ru.wikipedia.org/wiki/CRC32. Например, CRC32(\'Beк живи – век учись\') = 4171076480.
• EXP(x).
Экспонента. Возвращает ex (экспоненту числа x).
• FLOOR(x).
Функция округления в меньшую сторону. Возвращает наибольшее из целых чисел, не превосходящих x. Например,:
• FLOOR(12345.6789) = 12345,
• FLOOR(-12345.6789) = -12346.
• LN(x), LOG(x).
Возвращает Inx (натуральный логарифм числа x). Таким образом, LN(EXP(y)) = y.
• LOG10(x).
Возвращает log10x (логарифм числа x по основанию 10). Например, LOG10(100) = 2.
• LOG2(x).
Возвращает log2x (логарифм числа x по основанию 2). Например, LOG2(16) = 4.
• LOG(a,x).
Возвращает logax (логарифм числа x по основанию a). Например, LOG(2,16) = LOG2(16) = 4.
• MOD(a,b).
Синоним выражения a % b, возвращает остаток от целочисленного деления a на b.
• PI().
Возвращает число π = 3,14159….
• POW(x,y), POWER(x,y).
Функция возведения в степень. Возвращает xy.
Например, POW(2, 10) = 1024.
• RAND().
Возвращает случайное число в интервале от 0 до 1.
• RAND(x).
Возвращает псевдослучайное число в интервале от 0 до 1, при этом целое число x используется как начальное значение генератора псевдослучайных чисел. Возвращаемое значение при этом предопределено, например, RAND(2 0) всегда возвращает значение 0,1588826125104 7.
• ROUND(x).
Функция округления до целого. Возвращает целое число, ближайшее к x.
• ROUND(x, n).
Функция округления. Если n > 0, возвращает ближайшее к x число с n знаками после разделителя. Если n = 0, возвращает ближайшее к x целое число: ROUND(x,0) = ROUND(x). Если n < 0, возвращает ближайшее к x целое число, заканчивающееся на n нулей. Например,:
ROUND(12345.6789,2) = 12345.68,
ROUND(12345.6789,0) = 12346,
ROUND(12345.6789,-2) = 12300,
ROUND(-12345.6789,2) = -12345.68.
• SIGN(x).
Функция получения знака. Возвращает значение 1, если x > 0, значение 0, если х = 0, и значение – 1, если x < 0.
• SQRT(x).
Возвращает √x (квадратный корень из x).
• TRUNCATE(x, n).
Функция отбрасывания "лишних" цифр. Если n > 0, возвращается число, состоящее из целой части числа x и n его первых знаков после разделителя. Если n = 0, возвращается целая часть x. Если n < 0, возвращается число, в котором последние n цифр заменены нулями. Например,:
TRUNCATE(12345.6789,2) = 12345.67,
TRUNCATE(12345.6789,0) = 12345,
TRUNCATE(12345.6789,-2) = 12300,
TRUNCATE(-12345.6789,2) = -12345.67.
В следующем подразделе мы рассмотрим алгебраические функции.
Тригонометрические функции
Рассмотрим тригонометрические функции, которые вы можете использовать в выражениях.
• SIN(x).
Возвращает синус угла величиной в x радиан.
• COS(x).
Возвращает косинус угла величиной в x радиан.
• TAN(x).
Возвращает тангенс угла величиной в x радиан.
• COT(x).
Возвращает котангенс угла величиной в x радиан.
• ASIN(x).
Возвращает арксинус числа x, то есть величину угла (в радианах, от – π / 2 до π / 2), синус которой равен x.
• ACOS(x).
Возвращает арккосинус числа x, то есть величину угла (в радианах, от 0 до π), косинус которой равен x.
• ATAN(x).
Возвращает арктангенс числа x, то есть величину угла (в радианах, от – π / 2 до π / 2), синус которой равен x.
• ATAN2(x,y), ATAN(x,y).
Возвращает величину угла (в радианах, от – π до π) между векторами с координатами (1,0) и (x,y), иными словами, величину угла между осью абсцисс и прямой, соединяющей точки (0,0) и (x,y) на координатной плоскости. Совпадает с ATAN(y/x), если x > 0.
• DEGREES(x).
Возвращает градусную меру угла, радианная мера которого равна x радиан. Например, DEGREES(PI()) = 180.
• RADIANS(x).
Возвращает радианную меру угла, градусная мера которого равна x градусов. Например, RADIANS(18 0) = 3,1415926535898.
Итак, мы обсудили основные числовые функции. Далее мы кратко рассмотрим функции, оперирующие значениями даты и времени.
3.4. Функции даты и времени
В данном разделе мы рассмотрим некоторые полезные функции, выполняющие различные операции с датами: получение текущей даты и/или времени, получение отдельных компонентов даты и/или времени, арифметические операции с датами (сложение, вычитание) и преобразование форматов даты.
В первую очередь познакомимся с функциями, которые возвращают текущую дату и/или время.
Функции получения текущей даты и времени
Для получения текущей даты и времени вы можете использовать следующие функции.
• CURDATE(), CURRENT_DATE(), current_date.
Возвращают текущую дату.
• CURTIME(), CURRENT_TIME(), current_time.
Возвращают текущее время.
• NOW(), CURRENT_TIMESTAMP(), CURRENT_TIMESTAMP, LOCALTIME(), LOCALTIME, LOCALTIMESTAMP(), LOCALTIMESTAMP.
Возвращают текущую дату и время.
• SYSDATE().
Возвращает текущую дату и время Windows. В отличие от остальных функций, которые возвращают дату и/или время начала выполнения SQL-команды, функция SYSDATE() возвращает время своего вызова. Таким образом, если в одной SQL-команде функция SYSDATE() вызывается несколько раз, то возвращаемые ею значения могут быть различны.
• UTC_DATE(), UTC_DATE.
Возвращает текущую дату по UTC в формате "YYYY-MM-DD" (или, в зависимости от контекста, "YYYYMMDD").
...
Примечание
UTC – универсальное скоординированное время, аналог гринвичского времени, основанный на атомном отсчете времени.
• UTC_TIME(), UTC_TIME.
Возвращает текущее время по UTC в формате "HH:MM:SS" (или, в зависимости от контекста, HHMMSS).
• UTC_TIMESTAMP(), UTC_TIMESTAMP.
Возвращает текущую дату и время по UTC в формате "YYYY-MM-DD HH:MM:SS" (или, в зависимости от контекста, "YYYYMMDDHHMMSS").
Далее рассмотрим функции, позволяющие выделять какую-либо часть даты.
Функции получения компонентов даты и времени
Рассмотрим функции, получающие в качестве аргумента дату и/или время и возвращающие один из компонентов аргумента.
• DATE(\'<Дaтa и время>\').
Функция DATE() получает в качестве аргумента дату или дату и время и возвращает дату, отсекая время. Например, DATE (2007-12-12 12:30:00) возвращает значение 2007-12-12.
• TIME(\'<Дaтa и время>\').
Функция TIME() получает в качестве аргумента время либо дату и время и возвращает время, отсекая дату. Например, TIME (2007-12-12 12:30:00) возвращает значение 12:30:00.
• DAY (\'<Дата или дата и время>\'), DAYOFMONTH (\'<Дата или дата и время>\').
Функции DAY() и DAYOFMONTH() получают в качестве аргумента дату или дату и время и выделяют из нее число (номер дня в месяце). Например, DAY(2007-12–12) возвращает значение 12.
• DAYNAME(\'<Дата или дата и время>\').
Функция DAYNAME() получает в качестве аргумента дату или дату и время и возвращает наименование дня недели, которым является эта дата. Например, DAYNAME(2007-12-12) возвращает значение Wednesday, поскольку 12 декабря 2007 г. – среда.
Если требуется получить название дня недели на русском языке, выполните команду
SET LC_TIME_NAMES=\'ru_RU\
или
SET GLOBAL LC_TIME_NAMES=\'ru_RU\
(о том, как действуют команды SET и SET GLOBAL, рассказывалось в подразделе "Вставка отдельных строк", когда речь шла об установке значения переменной sql_mode).