[原创]SQL表值函数:获取从当月计算起往前自定义月份数

 

今天我如今发现看一篇博文不可以太长,只要可以描述清楚本身想表达的东西,可以让你们知道你要讲什么就好了。由于我今天看了一些长篇博文,真的以为知识点太多了, 会让人囫囵吞枣。函数

这篇博文跟我昨天发表的相似,一样是为了解决一个统计需求,结果是要求返回从当月起往回推算出自定义输入的月份blog

喜欢总结的我,为此写了一个表值函数来解决这一需求。现记录一下,也但愿能帮助到一些也遇到此类问题的朋友。ip

首先咱们看一下执行效果图:get

返回最近一年便是十二个月的数据,执行调用函数:SELECT * FROM [Fn_RunMonth](-12)it

image

具体函数以下:io

-- =============================================
-- 调用:SELECT * FROM [Fn_RunMonth](-12)
-- Create date:2015-01-12
-- Description:    获取从当月计算起往前 @num 月,返回Table
-- =============================================
CREATE FUNCTION [dbo].[Fn_RunMonth] (@num INT=-12)
RETURNS @tab TABLE
    (
     Sale_Year VARCHAR(10) ,
     XSDate VARCHAR(10) ,
     Sort INT
    )
AS
    BEGINdate

        DECLARE @i INT 
        SET @i=0
        WHILE (@i>@num)
            BEGIN
                INSERT  INTO @tab
                        SELECT  [Sale_Year] = YEAR(DATEADD(month, @i, GETDATE())) ,
                                [XSDate] = MONTH(DATEADD(month, @i, GETDATE())) ,
                                Sort = @i
                SET @i=@i-1
            END
        RETURN
    END
im

若是朋友们以为之后可能会用到的话,欢迎转载,固然也能够推荐一下,谢谢。 统计

 

PS:此博文是利用Windows Live Writer 2012编写,格式效果可能不太好。 总结

相关文章
相关标签/搜索