(讨论)计算当月的星期日天数问题
--功能就是计算某一月份的星期日天数、应该出勤天数   
 --应该出勤天数=月份天数-星期日天数 
 --大家帮忙看看,哪里可以优化,找个最简单的方法来解决,谢谢了。 
 CREATE   FUNCTION   FUN_CoutDaysOfMonth 
 (@YearMonth   nvarchar(7)	--月份 
 ,@CountType   int		--0   整月天数;   1星期日天数;   2应该出勤天数 
 ) 
 RETURNS   int 
 AS       
 BEGIN    
       DECLARE    
 	@BeginDate   datetime 
 	,@EndDate   datetime 
 	,@Return   int 
 	,@SumSunDay   int 
 	SET   @BeginDate=@YearMonth+ '-01 ' 
 	SET   @EndDate=DATEADD(Day,-1,DATEADD(month,1,@BeginDate)) 
 	SET   @Return=DATEDIFF(day,@BeginDate,@EndDate)+1 
 	IF(@CountType=0)   RETURN   @Return 
 	SET   @SumSunDay=(SELECT   SUM(CASE   ISDATE(@YearMonth+ '- '+D)   WHEN   1   THEN   CASE   RIGHT(DATENAME(Weekday,@YearMonth+ '- '+D),1)   WHEN    '日 '   THEN   1   ELSE   0   END      ELSE   0   END) 
 			FROM   	( 
 				SELECT    '01 '   D   UNION   ALL 
 				SELECT    '02 '   UNION   ALL 
 				SELECT    '03 '   UNION   ALL 
 				SELECT    '04 '   UNION   ALL 
 				SELECT    '05 '   UNION   ALL 
 				SELECT    '06 '   UNION   ALL 
 				SELECT    '07 '   UNION   ALL 
 				SELECT    '08 '   UNION   ALL 
 				SELECT    '09 '   UNION   ALL 
 				SELECT    '10 '   UNION   ALL 
 				SELECT    '11 '   UNION   ALL 
 				SELECT    '12 '   UNION   ALL 
 				SELECT    '13 '   UNION   ALL 
 				SELECT    '14 '   UNION   ALL 
 				SELECT    '15 '   UNION   ALL 
 				SELECT    '16 '   UNION   ALL 
 				SELECT    '17 '   UNION   ALL 
 				SELECT    '18 '   UNION   ALL 
 				SELECT    '19 '   UNION   ALL 
 				SELECT    '20 '   UNION   ALL 
 				SELECT    '21 '   UNION   ALL 
 				SELECT    '22 '   UNION   ALL 
 				SELECT    '23 '   UNION   ALL 
 				SELECT    '24 '   UNION   ALL 
 				SELECT    '25 '   UNION   ALL 
 				SELECT    '26 '   UNION   ALL 
 				SELECT    '27 '   UNION   ALL 
 				SELECT    '28 '   UNION   ALL 
 				SELECT    '29 '   UNION   ALL 
 				SELECT    '30 '   UNION   ALL 
 				SELECT    '31 '    
 				)   A 
 			) 
 	IF(@CountType=1)   RETURN   @SumSunDay 
 	IF(@CountType=2)   RETURN   @Return-@SumSunDay 
 	RETURN   @Return 
 END 
------解决方案--------------------像LZ這樣運算的...要是碰到個國慶節,勞動節,春節之類的,還不要更麻煩
------解决方案--------------------乳沟兄好有经验哦...
------解决方案--------------------慚愧慚愧...偶是CSDN學到的^^