Pergunta : Determinando o número de dias de trabalho durante um mês especific

Eu estou tentando escrever a seguinte função para determinar o número de dias de trabalho em um mês, mas eu estou tendo o problema com um erro de sintaxe.  Algumas sugestões: @MONTHDAYS de INT
SELECT do @RESULT de INT
DECLARE do @MONTHDAYS de DATETIME
DECLARE do @LASTDAY de DATETIME
DECLARE do @FIRSTDAY do
RETURNS INT
AS
BEGIN
DECLARE do udf_integer_Returns_WorkingDaysInSpecifiedMonth da FUNÇÃO do

CREATE (@MONTH INT, @YEAR INT) =
do CASO QUANDO @MONTH = 1 ENTÃO 31
QUANDO @MONTH = 2 ENTÃO 28
QUANDO @MONTH = 3 ENTÃO 31
QUANDO @MONTH = 4 ENTÃO 30
QUANDO @MONTH = 5 ENTÃO 31
QUANDO @MONTH = 6 ENTÃO 30
QUANDO @MONTH = 7 ENTÃO 31
QUANDO @MONTH = 8 ENTÃO 31
QUANDO @MONTH = 9 ENTÃO 30
QUANDO @MONTH = 10 ENTÃO 31
QUANDO @MONTH = 11 ENTÃO 30
QUANDO @MONTH = 12 ENTÃO 31 @FIRSTDAY DO
END

SET = CONVERSO (DATETIME, (CONVERSO ( DO VARCHAR (2), @MONTH) + “/1/” + CONVERSO (VARCHAR (4), @YEAR))@LASTDAY do
SET = de
SET de DATEADD (dd, @MONTHDAYS, @FIRSTDAY) @RESULT = @RESULT do @LASTDAY
BEGIN
SET do <> do @FIRSTDAY do
WHILE do
BEGIN do @LASTDAY do <= do @FIRSTDAY de 0
IF = @RESULT + CASO QUANDO DATEPART (DIA ÚTIL, @FIRSTDAY) (1.7) ENTÃO em 0 MAIS 1 @RESULT
END
do @FIRSTDAY de END
SET = do
END
END
RETURN de DATEADD (D, 1, @FIRSTDAY) class= do

Resposta : Determinando o número de dias de trabalho durante um mês especific

Mudança pesarosa, menor.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
-- FUNÇÃO GetWorkdays da GOTA 
CRIAR a FUNÇÃO GetWorkdays (
  @month int,
  int @year 
  ) RETORNOS INT COMO COMEÇAM
  
	declarar o @result int  
	declarar o datetime do @seedDate
	AJUSTAR O @SEEDDATE = O DATEADD (ANO, @YEAR - 1900, 0)

	SELECIONAR O @RESULT = A SOMA (
	  CASO 
		 QUANDO DATEPART (dia útil,   DATEADD (d, número, @seedDate)) EM (1.7) 
		 ENTÃO 0 
		 MAIS 1 
		 EXTREMIDADE
	  )
	  do mestre. .spt_values
	  onde tipo = “p”
	  e ANO (DATEADD (d, número, @seedDate)) = ANO (@seedDate)
	  e MÊS (DATEADD (d, número, @seedDate)) = @month
	@result do retorno
EXTREMIDADE
Outras soluções  
 
programming4us programming4us