Добавление только определенных дней в DateAdd в SQL? - PullRequest
0 голосов
/ 11 июля 2011

У меня есть отчет об инвентаризации, с которым я работаю, который вычисляет наше среднее еженедельное потребление конкретной детали, а затем делит его на то, что у нас есть в наличии, чтобы показать нам числовые «недели в запасе». Таким образом, если у нас среднее еженедельное потребление 496, а у нас есть 1500 штук в наличии, неделей должно быть 3,02.

То, что я пытаюсь сделать, это взять это число и точно рассчитать, в какой день у нас закончится рассматриваемая часть. Таким образом, у нас закончилась часть примера через 3,02 недели. Моя проблема в том, что я должен исключить пятницы - воскресенья, поэтому каждая рабочая неделя длится всего четыре дня.

Я посмотрел на функцию DATEADD (), и мне кажется, что это то, что мне нужно использовать, но я просто не уверен, как исключить из нее пятницы. Я использую SQL 2005 для этого.

Большое спасибо!

1 Ответ

0 голосов
/ 03 октября 2011
DECLARE @old_dt SMALLDATETIME
SET @old_dt = GETDATE()
DECLARE @new_dt SMALLDATETIME
SET @new_dt = DATEADD(d,CAST(3.2*7 AS INT),@old_dt)
SELECT CASE WHEN DATENAME(weekday,@new_dt) = 'Thursday' THEN DATEADD(d,2,@new_dt) WHEN  DATENAME(weekday,@new_dt) = 'Friday' THEN DATEADD(d,1,@new_dt) ELSE @new_dt END
...