.NET 學習

.NET 學習生活感想... 万事成蹉跎..... 贵在坚持 及时整理自己做过和学过的东西

博客园 首页 新随笔 联系 订阅 管理
--獲取某年某月有多少周日(不包含周六)
CREATE FUNCTION f_getnums ( @year_month VARCHAR(8) )
RETURNS INT
AS 
    BEGIN
        DECLARE @bdt DATETIME ,
            @edt DATETIME ,
            @i INT
        SET @i = 0
        SET @bdt = CAST(@year_month + '-01' AS DATETIME)
        SET @edt = DATEADD(d, -1,
                           DATEADD(month, 1,
                                   CAST(@year_month + '-01' AS DATETIME)))

        WHILE DATEDIFF(d, @bdt, @edt) >= 0 
            BEGIN
                IF --DATEPART(dw, @bdt) = 1                    OR
                    DATEPART(dw, @bdt) = 7 
                    BEGIN
                        SET @i = @i + 1
                    END
                SET @bdt = DATEADD(d, 1, @bdt)
            END
        RETURN @i
    END

DECLARE @date DATETIME 
SET @date = '2012-12-01'
 --1.獲取某年某月有多少天
 SELECT  DATEDIFF(dd, @date, DATEADD(mm, 1, @date))  
 --2.获取某年某月有多少个星期日
 select dbo.f_getnums(CONVERT(VARCHAR(07), @date, 120)) AS workday 
 --3.获取某年某月有多少个工作日(仅不包含周日)
 select DATEDIFF(dd, @date, DATEADD(mm, 1, @date))- dbo.f_getnums(CONVERT(VARCHAR(07), @date, 120)) AS workday 

 

posted on 2013-01-12 11:50  Tonyyang  阅读(655)  评论(0编辑  收藏  举报
欢迎转载,转载请注明出处:http://www.cnblogs.com/Tonyyang/