Программирование >>  Построение запросов sql 

1 ... 24 25 26 [ 27 ] 28 29 30 ... 101


Таблица 3.2. Числовые функции

Функция

Описание

RAND()

Случайное число от 0 до 1

ABS (число)

Абсолютное значение

SIGN (число)

Знаковая функция (возвращает 1 для положительного числа, 0 - для нуля, -1 -для отрицательного числа)

MOD (делимое, делитель)

Остаток от деления

LOG (основание, число)

Логарифм числа по указанному основанию

LN (число)

Натуральный логарифм числа

LOG10 (число)

Десятичный логарифм числа

EXP (число)

Экспоненциальная функция (e в степени аргумента)

PI()

Константа п = 3.1459...

POWER (число, степень)

Возведение числа в степень

SQRT (число)

Квадратный корень

FLOOR (число)

Округление до целого числа вниз

CEIL CEILING (число)

Округление до целого числа вверх

ROUND (число, точность)

Округление до указанного количества знаков после запятой

TRUNC (число)

Целая часть числа

HASH(<значение>)

Хэш-функция (рандомизация значения)

Тригонометрические функции

SIN (число)

Синус (аргумент задается в радианах)

COS (число)

Косинус (угол определяется в радианах, результат в диапазоне от -1 до 1)

TAN (число)

Тангенс (аргумент задается в радианах)

COT (число)

Котангенс

ASIN (число)

Арксинус (число должно быть в диапазоне от -1 до 1, результат от -л/2 до л/2)

ACOS (число)

Арккосинус (число должно быть в диапазоне от -1 до 1, результат от 0 до л)

ATAN (число)

Арктангенс (возвращает результат в диапазоне от -л/2 до л/2)

SINH (число)

Гиперболический синус

COSH (число)

Гиперболический косинус

TANH (число)

Гиперболический тангенс

ATAN2 (число1, число2)

Арктангенс в градусах, вычисляемый как арктангенс результата деления одного тангенса на другой -ATAN(число1/число2). Возвращает результат в диапазоне (-л; л]



Таблица 3.2. Окончание

Логические функции

BIN AND (число [,число...])

Логическое И на всех аргументах

BIN OR (число [,число>..])

Логическое ИЛИ на всех аргументах

BIN XOR (число [,число...])

Исключающее ИЛИ на всех аргументах

BIN SHL (число, число)

Двоичный сдвиг влево

BIN SHR (число, число)

Двоичный сдвиг вправо

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

Как уже отмечалось, эти функции выполняют различные действия над входными значениями времени и даты и возвращают строковое, числовое значение или значение в формате даты и времени.

Для выделения значений дня, месяца и года из даты используется функция EXTRACT.

Синтаксис этой функции следующий:

EXTRACT( { DAY MONTH YEAR} FROM <значение> ), где <значение> - любое выражение, возвращающее результат типа дата-время .

Пусть, например, требуется для каждой ремонтной заявки, год поступления которой отличается от 2001, указать ее номер, день, месяц и год даты поступления. Для этого можно использовать следующий запрос:

SELECT RequestCD,

EXTRACT(DAY FROM IncomingDate)

AS IncomingDay, EXTRACT (MONTH FROM IncomingDate)

AS IncomingMonth, EXTRACT (YEAR FROM IncomingDate)

AS IncomingYear FROM Request

WHERE EXTRACT (YEAR FROM IncomingDate) IS DISTINCT FROM 2001;.

Результат выполнения запроса представлен на рис. 3.29.

REQUESTCD

INCOMINGDAY

INCOMINGMONTH

INCOMINGYEAR

1998

1998

1999

2000

1999

2000

1999



Для получения значений текущей даты и системного времени сервера

используются функции CURRENT TIMESTAMP, CURRENT DATE и CURRENT TIME.

Функция CURRENT TIMESTAMP возвращает значение типа TIMESTAMP

(дату и время вместе).

Например, вывести данные таблицы Services и текущие дату и время можно помощью следующего запроса:

SELECT S.*, CURRENT TIMESTAMP FROM Services S;.

Результат выполнения запроса представлен на рис. 3.30.

GAZSERVICECD

GAZSERVICENM

CURRENT TIMESTAMP

Доставка газа

04.05.2007 11:23

Заявочный ремонт ГО

04.05.2007 11:23

Рис. 3.30. Результат работы функции CURRENT TIMESTAMP

Для возврата текущей даты сервера можно использовать функцию CURRENT DATE, а для возврата системного времени сервера - функцию

CURRENT TIME.

Функция DATEADD возвращает значение типа дата, время или дата/время, увеличенное или уменьшенное (если количество отрицательное) по сравнению с исходным значением на заданное количество лет, месяцев, дней, недель, часов, минут или секунд. Функция имеет следующий формат:

DATEADD ( количество <временной отрезок> FOR <значение> )

DATEADD (<временной отрезок>, количество, <значение> ), где количество - количество прибавляемых или вычитаемых единиц; <временной отрезок> { YEAR MONTH DAY WEEKDAY HOUR MINUTE

SECOND };

<значение> - значение типа дата, время или дата/время, которое увеличивается или уменьшается. Следует отметить следующее:

- YEAR, MONTH, DAY и WEEKDAY в качестве временного отрезка не могут использоваться со значениями типа время (например, тип TIME);

- HOUR, MINUTE и SECOND в качестве временного отрезка не могут использоваться со значениями типа дата (например, тип DATE);

- все значения временного отрезка могут быть использованы для типов

дата/время (тип TIMESTAMP).

Например, требуется вывести даты регистрации ремонтных заявок с кодом неисправности, равным 1, и даты через две недели после их регистрации. Запрос будет выглядеть следующим образом: SELECT IncomingDate,

DATEADD (2 WEEKDAY FOR IncomingDate) AS Exec Limit

FROM Request

WHERE FailureCD = 1;.



1 ... 24 25 26 [ 27 ] 28 29 30 ... 101

© 2006 - 2025 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика