powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Расчет количества рабочих часов между 2 я датами
2 сообщений из 2, страница 1 из 1
Расчет количества рабочих часов между 2 я датами
    #39740198
plosten
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет. Есть функция которая рассчитывает рабочие часы между 2 я датами :
USE [ERPReports]
GO
/****** Object: UserDefinedFunction [dbo].[f_get_CountWorksHours] Script Date: 28.11.2018 15:30:31 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


ALTER FUNCTION [dbo].[f_get_CountWorksHours]
(
@startdate Datetime2,
@enddate Datetime2
)
RETURNS TABLE AS RETURN
(
SELECT
(DATEDIFF(mi, @startdate, @enddate))/1440 +1
-(DATEDIFF(wk, @startdate, @enddate) * 2)
-(CASE WHEN DATENAME(dw, @startdate) = 'Sunday' THEN 1 ELSE 0 END)
-(CASE WHEN DATENAME(dw, @enddate) = 'Saturday' THEN 1 ELSE 0 END)
As NoOfWeekDays

)

На вход подается интервал с датами и временем, в которые отсутствовал сотрудник. Не устраивает то, что она выдает целые дни.
Например сотрудник отсутствовал один день полдня , другой 2 часа а функция считает что он отсутствовал 2 дня. как можно ее переделать, чтобы в итоге из всего интервала dj первых учитывались только рабочие дни во вторых считалось именно время отсутствия по часам. Пример интервала
Отсутствующий DateTimeStart DateTimeFinish
Елена Тищенко 2018-11-19 08:00:00.000 2018-11-19 19:00:00.000
Елена Тищенко 2018-11-20 17:15:00.000 2018-11-20 18:15:00.000
Елена Тищенко 2018-11-21 17:45:00.000 2018-11-21 18:30:00.000
Елена Тищенко 2018-11-22 17:30:00.000 2018-11-22 18:30:00.000
то есть по идее функция должна вернуть в интервале с '2018-11-19 00:01:06.000' по '2018-11-24 00:01:06.000' что то около 1.3 дня
Рабочий день считать в интервале с 8 до 18.00. и праздники не учитывать

Модератор: Тема перенесена из форума "MySQL".
...
Рейтинг: 0 / 0
Расчет количества рабочих часов между 2 я датами
    #39740273
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
plosten,

например ... /CAST(1440 as money)
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Расчет количества рабочих часов между 2 я датами
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]