[原創]SQL 表值函數:獲取從今天計算起往前自定義天數

PS:此博文是利用Windows Live Writer 2012編寫,格式效果可能不太好。函數

在我開發過程當中,遇到一個統計需求,結果是要求返回從當天起往回推算出自定義輸入的天數blog

爲此我寫了一個表值函數來解決這一需求。現記錄一下,也但願能幫助到一些也遇到此類問題的朋友。ip

首先咱們看一下執行效果圖:開發

返回最近十五天的數據,執行調用函數:SELECT * FROM [Fn_RunDay](-15)get

image

具體函數以下:it

-- =============================================
-- 調用:SELECT * FROM [Fn_RunDay](-15)
-- Create date: 2015-01-11
-- Description:    獲取從今天計算起往前 @num 天,返回Table
-- =============================================
ALTER FUNCTION [dbo].[Fn_RunDay] (@num INT=-15)
RETURNS @tab TABLE
    (
     XSDate VARCHAR(10) ,
     Sort INT
    )
AS
    BEGINio

        DECLARE @i INT 
        SET @i=0
        WHILE (@i>@num)
            BEGIN
                INSERT  INTO @tab
                        SELECT  XSDae = CONVERT (VARCHAR(100), DATEADD(day, @i, GETDATE()), 23) ,
                                Sort = @i
                SET @i=@i-1
            END
        RETURN
    ENDdate

若是朋友們以爲之後可能會用到的話,歡迎轉載,固然也能夠推薦一下,謝謝。im

相關文章
相關標籤/搜索