• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    sqlserver中如何查询出连续日期记录的代码

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


    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 日期函数CAST 和 CONVERT 以及在业务中的使用介绍
    • SQLserver中用convert函数转换日期格式的方法
    • SQL Server 日期相关资料详细介绍
    • sqlserver获取当前日期的最大时间值
    • sql 查询本年、本月、本日记录的语句,附SQL日期函数
    • Sqlserver 常用日期时间函数
    • 根据日期知道当天是星期几的手动计算方法
    • 按日期选择最晚日期与最早日期对应的数的差值
    • MSSQL 计算两个日期相差的工作天数的语句
    • SQL Server自动生成日期加数字的序列号
    • SQL 返回期间内的所有日期
    • 数据库 日期加减处理
    • sql语句中如何将datetime格式的日期转换为yy-mm-dd格式
    • 在SQL中使用convert函数进行日期的查询的代码
    • SQL Server日期计算
    • SQL Server各种日期计算方法(收藏)
    • SqlServer中的日期与时间函数
    上一篇:mssql中获取指定日期所在月份的第一天的代码
    下一篇:SQLserver 数据库危险存储过程删除与恢复方法
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

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