SELECT S.*, CURRENT_TIMESTAMP FROM Services S;.
Результат выполнения запроса представлен на рис. 3.30.
|
GAZSERVICECD |
GAZSERVICENM |
CURRENT TIMESTAMP |
|
1 |
Доставка газа |
04.05.2007 11:23 |
|
2 |
Заявочный ремонт ГО 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;.
Результат выполнения предыдущего запроса представлен на рис. 3.31.
|
INCOMINGDATE |
EXEC LIMIT |
|
17.12.2001 |
31.12.2001 |
|
07.08.2001 |
21.08.2001 |
|
31.12.2001 |
14.01.2002 |
|
06.11.2001 |
20.11.2001 |
Рис. 3.31. Результат работы функции DATEADD
предыдущаяследующая