Fråga : Bestämma numrera av funktionsdugliga dagar under en specificerad månad

Pröva förmiddag I att skriva efter fungera för att bestämma numrera av funktionsdugliga dagar i en månad, men I-förmiddagen som den har, besvärar med ett syntaxfel.  Några förslag:

CREATE FUNGERAR för DATETIME
DECLARE för @FIRSTDAY för
RETURNS INT
AS
BEGIN
DECLARE för udf_integer_Returns_WorkingDaysInSpecifiedMonth (@MONTH INT, @YEAR INT) för DATETIME
DECLARE @LASTDAY för INT
DECLARE @MONTHDAYS INT
SELECT @RESULT @MONTHDAYS = FALL
NÄR @MONTH = 1 DÄREFTER 31
NÄR @MONTH = 2 DÄREFTER 28
NÄR @MONTH = 3 DÄREFTER 31
NÄR @MONTH = 4 DÄREFTER 30
NÄR @MONTH = 5 DÄREFTER 31
NÄR @MONTH = 6 DÄREFTER 30
NÄR @MONTH = 7 DÄREFTER 31
NÄR @MONTH = 8 DÄREFTER 31
NÄR @MONTH = 9 DÄREFTER 30
NÄR @MONTH = 10 DÄREFTER 31
NÄR @MONTH = 11 DÄREFTER 30
NÄR @MONTH = 12 DÄREFTER 31 @FIRSTDAY FÖR
END

SET = OMVÄND (DATETIME, (OMVÄNDEN, (FÖR VARCHAR (2), @MONTH) + ”/1/” + OMVÄND (VARCHAR (4), @YEAR))@LASTDAY för
SET = för
SET för DATEADD (dd, @MONTHDAYS, @FIRSTDAY) @RESULT = för @FIRSTDAY<= för 0
IF @RESULT för @LASTDAY
BEGIN
SET för <> för @FIRSTDAY för
WHILE för
BEGIN för @LASTDAY = @RESULT + FALL NÄR DATEPART (VARDAGEN, @FIRSTDAY) I (1.7) DÄREFTER 0 ANNARS 1 @RESULT
END
för END
SET @FIRSTDAY = för
END
END
RETURN för DATEADD (D, 1, @FIRSTDAY) " klar "

Svar : Bestämma numrera av funktionsdugliga dagar under en specificerad månad

Ledset minderårigändring.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
-- TAPPA FUNGERAR GetWorkdays 
SKAPA FUNGERAR GetWorkdays (
  @month int,
  @year int 
  ) RETUR INT SOM BÖRJAR
  
	förklara @result int  
	förklara @seedDatedatetime
	FASTSTÄLLD @SEEDDATE = DATEADD (ÅRET SOM, ÄR @YEAR - 1900, 0)

	VÄLJ @RESULT = SUMMAN (
	  FALL 
		 NÄR DATEPART (vardagen,   DATEADD (D, numrerar, @seedDate)), I (1.7) 
		 DÄREFTER 0 
		 ANNARS 1 
		 AVSLUTA
	  )
	  från ledar-. .spt_values
	  var typ = ”p”,
	  och ÅR (DATEADD (D, numrerar, @seedDate)), = ÅR (@seedDate)
	  och MÅNAD (DATEADD (D, numrerar, @seedDate)), = @month
	återgång @result
AVSLUTA
Andra lösningar  
 
programming4us programming4us