sql返回两个日期之间的日期_函数实现

时间:2023-01-02 10:22:56

-- 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

执行运行结果如下:

sql返回两个日期之间的日期_函数实现