SQL даты время до минут минус рабочие дни ..... путать - PullRequest
1 голос
/ 05 августа 2010

Следующий код был создан из другого поста, но теперь у меня есть отдельная проблема. Этот код в основном берет 2 даты и вычитает из них выходные, чтобы получить общее время, прошедшее в минутах от начала до конца, исключая выходные. Сейчас я пытаюсь сказать, так как для меня есть 11 часов рабочего дня, я хочу считать только 11 часов в день. Результаты, которые я получаю, следующие (я добавил имена столбцов, чтобы вы знали, что они есть):

@AllMins  @MinDays
2173         1.50902777777778

Поскольку в рабочий день 660 минут или 780 минут не работают в рабочий день, мне необходимо вычесть это из общего времени. Итак, 1 день будет 2173-780, но мне также нужно получить .50902777777778 минут в день. Есть предложения?

DECLARE @StartDate DATETIME
DECLARE @EndDate DATETIME
SET @StartDate = '2010-08-02 00:00:00.000'
SET @EndDate = '2010-08-03 12:13:12.123'

--How many minutes are between order start and end time including non working time
DECLARE @AllMins INT 
--Declares how many minutes are in a day and makes it float to get remainder minutes when divided
DECLARE @MinsInDay FLOAT 
SET @MinsInDay = 1440

--Finds how many minutes are between start and end time excluding weekends and assignes to variable 
SET @AllMins = ((DATEDIFF(mi, @StartDate, @EndDate)) 
  -(((DATEDIFF(wk, @StartDate, @EndDate) * 2) * 24) * 60)  
  -(((CASE WHEN DATENAME(dw, @StartDate) = 'Sunday' THEN 1 ELSE 0 END) * 24) * 60)
  -(((CASE WHEN DATENAME(dw, @EndDate) = 'Saturday' THEN 1 ELSE 0 END) * 24) * 60)) 

--Calculates how many days have elapsed in the minutes that the order has taken
DECLARE @MinDays FLOAT
SET @MinDays = (@AllMins/@MinsInDay)

SELECT
@AllMins
,@MinDays

1 Ответ

2 голосов
/ 06 августа 2010

Вы ищете

@AllMins - (integer portion of (@MinDays) * 780) - (fractional portion of (@MinDays) * 360)

, чтобы вы вычитали часть 780 минут из дробной части?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...