|
Программирование >> Построение запросов sql
Таблица 3.2. Числовые функции
Таблица 3.2. Окончание
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.
Для получения значений текущей даты и системного времени сервера используются функции CURRENT TIMESTAMP, CURRENT DATE и CURRENT TIME. Функция CURRENT TIMESTAMP возвращает значение типа TIMESTAMP (дату и время вместе). Например, вывести данные таблицы Services и текущие дату и время можно помощью следующего запроса: SELECT S.*, CURRENT TIMESTAMP FROM Services S;. Результат выполнения запроса представлен на рис. 3.30.
Рис. 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;.
|
© 2006 - 2025 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |