sqlserver中如何查询出连续日期记录的代码

 更新时间:2011年09月12日 14:48:48   作者:  
Insus.NET尝试写了程序并做了测试,可以得到预期的结果,SQL代码可参考和学习之用。

有在论坛上看到一帖,《请教查询出连续日期记录的方法》,截图如下:


Insus.NET尝试写了程序并做了测试,可以得到预期的结果,SQL代码可参考和学习之用。

复制代码 代码如下:

--创建一个临时表,将会存储连续日期的记录
CREATE TABLE #temp (IDD VARCHAR(10),SDATE DATETIME)
DECLARE @sD DATETIME --开始日期
DECLARE @eD DATETIME --结束日期
--在记录中,找出开始与结束日期
SELECT @sD = MIN([SDATE]), @eD = MAX([SDATE]) FROM [TT]
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

上面的方法,实际可以把IF (@N >= 3)这句中的3改为一个变量,这样可以方便以后的程序扩展,某一天需要改为连续2天,4天,5天,或任何一天。

相关文章

  • 获取SQL Server表字段的各种属性实例代码

    获取SQL Server表字段的各种属性实例代码

    下面的语句将实现获取SQL Server表字段的各种属性,感兴趣的朋友可以参考下哈,希望对你有所帮助
    2013-05-05
  • SQL Server 压缩日志与减少SQL Server 文件大小的方法

    SQL Server 压缩日志与减少SQL Server 文件大小的方法

    这篇文章主要为大家描述的是实现SQL Server 压缩日志与SQL Server 文件大小的实际操作步骤,在此实际操作中我们要按步骤一步一步的进行,未进行前面的步骤时,请不要做后面的步骤,以免损坏你的数据库
    2014-07-07
  • 分享网站群发站内信数据库表设计

    分享网站群发站内信数据库表设计

    本文和大家分享一下网站站内信实现表设计的功能。需要的朋友可以参考下。
    2010-03-03
  • SqlServer 表连接教程(问题解析)

    SqlServer 表连接教程(问题解析)

    这篇文章主要介绍了SqlServer 表连接问题及解决方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-11-11
  • 介绍备份和还原MySQL数据的两种方法

    介绍备份和还原MySQL数据的两种方法

    这篇文章主要介绍了介绍备份和还原MySQL数据的两种方法,文中的操作环境基于CentOS,介绍了使用mysqldump和数据库文件两种方法,需要的朋友可以参考下
    2015-05-05
  • 浅析SQL存储过程和事务处理

    浅析SQL存储过程和事务处理

    在Sql Server数据库的存储过程中如何使用事务来完成数据的批量操作呢?下面小编就详细的为大家介绍一下。需要的朋友可以过来参考参考
    2013-08-08
  • SQL Server表空间碎片化回收的实现

    SQL Server表空间碎片化回收的实现

    本文主要介绍了SQL Server表空间碎片化回收的实现,文中根据实例编码详细介绍的十分详尽,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • SqlLoader怎么使用

    SqlLoader怎么使用

    SQL*Loader(SQLLDR)是Oracle的高速批量数据加载工具。这是一个非常有用的工具,可用于多种平面文件格式向Oralce数据库中加载数据,本文给大家分享sqlloader怎么使用的相关资料,感兴趣的朋友一起学习吧
    2015-12-12
  • MSSQL 游标使用 心得

    MSSQL 游标使用 心得

    MS-SQL游标的使用及理解 windows或DOS的“光标”不同,MS-SQL的游标是一种临时的数据库对象,既对可用来旋转储存在系统永久表中的数据行的副本,也可以指向储存在系统永久表中的数据行的指针。
    2009-04-04
  • SQL 窗口函数实现高效分页查询的案例分析

    SQL 窗口函数实现高效分页查询的案例分析

    SQL 各部分的逻辑执行顺序 注意到窗口函数的求值仅仅位于ORDER BY之前,而位于 SQL 的绝大部分之后。本文重点给大家介绍SQL 窗口函数实现高效分页查询功能,通过案例分析给大家介绍的很详细,感兴趣的朋友跟随小编一起看看吧
    2021-05-05

最新评论