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

  • Часть 1
  • | 2
  • | 3

Для определения величины временного промежутка от первого заданного значения типа дата, время или дата/время до второго может использоваться функция DATEDIFF. Данная функция возвращает значение типа BIGINT и имеет следующий формат:

DATEDIFF ( <временной_отрезок> FROM <значение1> FOR <значение2> )

или

DATEDIFF ( <временной_отрезок>, <значение1>, <значение2> ), где <временной_отрезок> имеет тот же синтаксис, что и в функции DATEADD.

Следует отметить следующее:

-       функция возвращает положительное число, если <значение2> превышает <значение1>, отрицательное - если <значение1> превышает <значение2>, и ноль - если значения равны;

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

-       сравнение значения типа DATE со значением типа TIME недопустимо;

-       как и для функции DATEADD, определенные временные отрезки могут использоваться только с соответствующим им типом.

Например, требуется для заявок, поданных абонентом с лицевым счетом '115705', вывести количество недель, прошедших с даты регистрации заявки до момента ее выполнения. Для этого можно использовать следующий запрос: SELECT RequestCD, DATEDIFF (WEEKDAY FROM IncomingDate

FOR ExecutionDate) AS Interval FROM Request WHERE AccountCD = '115705';. Результат выполнения запроса представлен на рис. 3.32.

REQUESTCD

INTERVAL

2

0

15

0

16

<null>

17

3

18

1

Рис. 3.32. Результат работы функции DATEDIFF

предыдущаяследующая