Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Help расчёт времени прохождения заявки  [new]
Владимир Маньков
Member

Откуда:
Сообщений: 16
Привет всем!
Хотел сделать функцию для расчёта времени прохождения заявки по маршруту и столкнулся с проблемой нехватки знаний.

Есть таблица с двумя датами (формат datetime)
Необходимо вычесть время прохождения заявки по маршруту
Есть условия: учитывать рабочий 8 часовой график
1.Если заявка запущена до 9 часов то считать время только с 9
2.Отнять 1 час на обед
3.Если заявка окончена после 18 часов то считать время только до 18
4.Не учитывать выходные и праздничные дни (есть таблица в которой указываются только рабочие даты формат вот такой:
work_day
2002-07-15 00:00:00
2002-07-16 00:00:00
2002-07-17 00:00:00)

create table #Calendar (start_time datetime, end_time datetime )

insert #Calendar values
('2014-12-14 08:10:15.000', '2014-12-15 18:00:00.000'),
('2014-12-05 08:10:15.000', '2014-12-08 18:10:00.000'),
('2014-12-09 09:10:15.000', '2014-12-10 18:02:00.000')

select * from #Calendar

Пожалуйста наставьте на правильный путь
15 дек 14, 13:24    [16998486]     Ответить | Цитировать Сообщить модератору
 Re: Help расчёт времени прохождения заявки  [new]
aleks2
Guest
1. Вычислить интервал "заявка запущена", "заявка окончена".
2. Вычислить выровненный на начало суток интервал "заявка запущена 00h", "заявка окончена 24h".
3. Вычесть (нерабочие_часы+обед) для всех полных суток.
4. Вычесть 24 часа * число_праздничных_дней для всех полных суток.
5. Обработать концы интервала
"заявка запущена 00h"-"заявка запущена".
"заявка окончена" - "заявка окончена 24h"
15 дек 14, 15:08    [16999252]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить