Функция для рабочих часов в секундах на основе таблицы календаря - PullRequest
0 голосов
/ 01 октября 2019

Я довольно новичок в этом форуме и в T-SQL.

Я ищу функцию для вычисления рабочих часов в секундах на основе моей календарной таблицы. В моей календарной таблице есть 2 столбца. 1-й столбец - это дата и время открытия, а 2-й столбец - дата и время.

Я пробовал решение из @Ezlo SQL Server, считая часы между датами, исключая пт 6 вечера - пн 6 утра В его решении, когдав ту же дату он удваивает время, например, выходной сигнал должен составлять 75 секунд, а затем 150 секунд. Я хочу иметь возможность вызывать функцию в запросе, таком как WorkTime (@StartDate DATETIME, @FinishDate DATETIME), пока она проходит через мою таблицу календаря. Начальная дата и конечная дата должны быть чем-то, что я положил в качестве значения, то есть столбцы (дата создания, дата закрыта) с датами.

Т.е.: запрос с 1000 строками, подобный этому формату.

Сценарий 1

TicketID:    111111
DateCreated: 2019-01-01 10:00:52
DateClosed:  2019-01-02 08:35:00

Результат функции должен составлять 300 секунд при проверке таблицы календаря.

Сценарий 2

TicketID:    111112
DateCreated: 2019-01-02 16:30:00
DateClosed:  2019-01-02 16:15:00

Результат проверки функции должен составлять 900 секунд при проверке таблицы моего календаря.

Сценарий 3

TicketID:    111113
DateCreated: 2019-01-02 20:00:00
DateClosed:  2019-01-03 09:30:00

Результат выполнения функции: 3600с

Сценарий 4

TicketID:    111114
DateCreated: 2019-01-05 20:00:00
DateClosed:  2019-01-07 09:00:00

Результат функции: 1800 с

Календарь Таблица

calendar table

Как видите, у меня 1 января установлено 08:30, поэтому не рассчитывается время (выходной). И поэтому у меня набор праздничных дней установлен одинаково.

Выходные пропускаются, см. Таблицу календаря, таким образом, это исключается, и время начинает отсчитываться в первый рабочий день.

Я пробовал несколько раз, но безуспешно заставить его работать так, как я хочу.

Надеюсь, вы, гуру, можете мне помочь мне достичь этого.

1 Ответ

0 голосов
/ 07 октября 2019

После нескольких дней поиска на этом форуме. Ответ, который я искал, можно найти здесь. Рассчитать разницу во времени (только рабочие часы) в минутах между двумя датами

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