-- Description:返回两段日期之间的所有日期 <Description,,>
-- =============================================
CREATE FUNCTION [dbo].[GetBetweenDate]
(
@StartTime DATETIME --开始日期
,@EndTime DATETIME --结束日期
)
RETURNS @TABLE table (BetweenDate DATETIME) --返回的结果集
AS
BEGIN
DECLARE @day INT
SELECT @day=DATEDIFF(day, @StartTime,@EndTime) --计算两个日期之间的天数
/*作一个循环处理(start)*/
WHILE (@day>0)
BEGIN
INSERT INTO @TABLE
( BetweenDate )
VALUES ( DATEADD(DAY,@day,@StartTime) -- 添加一条记录从开始时期 加上天数,然后做一个减1计算,一直累积下来
)
SET @day=@day-1
END
/*作一个循环处理(end)*/
INSERT INTO @TABLE ( BetweenDate )VALUES ( @StartTime)--把最后一条记录添加进去(即开始日期)
RETURN
END
执行运行结果如下: