|
|
|||||||||||||||||||||||||||||
|
DocsVision: T-SQL Скрипт для рассчета количества рабочего времени между двумя датами с учетом бизнес-календаря (с изменениями от 15.10)Источник: dvprofessionalsblogspot Александр Среда
Для решения задачи расширенного отчета мне требовалось вычислять рабочее время потраченное сотрудником на поставленную ему задачу в днях. Попробовал использовать уже имеющиеся решения этой задачи, но столкнулся с небольшими проблемами, поэтому написал свой вариант решения. На мой взгляд, получилось совсем не плохо :-) Первый вариант пришлось немного изменить (для тех кто уже успел с ним ознакомиться), так как для расчета необходимо было вызывать процедуру, а не функцию, что осложняло использование решения в запросах для построения отчетов. И так, решение теперь состоит из 4 функций: 1. Функция расчета рабочего времени в первый день заданного периода Есть несколько допущений: 1. Если дата старта не задана, то она приравнивается к началу текущего дня При запуске процедуры расчета рабочего времени есть параметры: @OnlyFullDay: @Mode: Функция возвращает количество рабочих дней или количество рабочего времени в минутах. Рабочее время вычисляется за любой промежуток времени, в том числе, при переходе между годами. У себя тестил на различных вариантах настроек календаря и без него - работает. Ссылки по теме
Файлы для загрузки
|
|