В таблице, как рассчитать часы входа в систему между двумя датами мудрой даты? - PullRequest
1 голос
/ 23 октября 2019

Например, мой час входа в систему от 7am до 11pm. Вы хотите рассчитать часы обработки между 18/10/2019 5:30:40 и 21/10/2019 14:05:15 с учетом даты. Рассмотрим все выходные и праздничные дни в конечном результате.

Вывод, который мы должны получить для приведенного выше примера:

18/10/2019 16 hrs
19/10/2019 16 hrs
20/10/2019 16 hrs
21/10/2019 7.0875 hrs

1 Ответ

1 голос
/ 23 октября 2019

часов входа с 7 до 23 часов означает 16-часовой рабочий день:

IF Datediff('day',[LogInTime],[LogOffTime])=0 Then  
(IF Datepart('hour',[LogOffTime])>23 then 23 else Datepart('hour',[LogOffTime]) end)-  
(IF Datepart('hour',[LogInTime])<7 then 7 else Datepart('hour',[LogInTime]) end)  
Else  
Datediff('day',[LogInTime],[LogOffTime])*16 +  
(IF Datepart('hour',[LogOffTime])>23 then 23 else Datepart('hour',[LogOffTime]) end)-  
(IF Datepart('hour',[LogInTime])<7 then 7 else Datepart('hour',[LogInTime]) end)  
End
...