Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Расчет количества рабочих часов между 2 я датами
|
|||
|---|---|---|---|
|
#18+
Всем привет. Есть функция которая рассчитывает рабочие часы между 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". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2018, 08:46 |
|
||
|
|

start [/forum/topic.php?fid=46&tid=1688689]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
25ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
31ms |
get tp. blocked users: |
1ms |
| others: | 235ms |
| total: | 329ms |

| 0 / 0 |
