如何查询出连续日期记录

作者: 手游论坛  发布:2019-10-08

DECLARE @N INT = 0  --公布二个变量,存款和储蓄累记录数

--循环日期
WHILE (@sD <= @eD)
BEGIN    
    
    --假诺存在
    IF EXISTS (SELECT TOP 1 1 FROM [TT] WHERE [SDATE] = @sD)
    BEGIN
        SET @sD = DATEADD(day,1,@sD) --日期加1天                
        SET @N = @N + 1 --记录加1
    END
    ELSE  --假诺空头支票
    BEGIN
        IF (@N >= 3) --判定是还是不是高于或等于3            
            INSERT INTO #temp SELECT [IDD],[SDATE] FROM [TT] WHERE [SDATE] BETWEEN DATEADD(day,-@N,@sD) AND @sD    
        
        --日期加1天                            
        SET @sD = DATEADD(day,1,@sD)
        SET @N = 0  --开端化为0                
    END
END

--列出符合条件的笔录
    SELECT * FROM #temp

Insus.NET尝试写了程序并做了测验,能够获取预期的结果,SQL代码可仿照效法和学习之用。

有在论坛上观察一帖,《请教查询出三回九转日期记录的法门》,截图如下:

 

DECLARE @sD DATETIME  --先导日期
DECLARE @eD DATETIME  --甘休日期

 

图片 1

--在笔录中,搜索开端与截止日期
SELECT @sD = MIN([SDATE]), @eD = MAX([SDATE]) FROM [TT] 

上边的措施,实际能够把IF (@N >= 3)那句中的3改为二个变量,那样能够一本万利以后的程序扩充,某一天内需改为接二连三2天,4天,5天,或其余一天。

--创立四个有时表,将会蕴藏接二连三日期的记录
CREATE TABLE #temp (IDD VARCHAR(10),SDATE DATETIME)

图片 2图片 3View Code

本文由银河网站登录发布于手游论坛,转载请注明出处:如何查询出连续日期记录

关键词: