• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > sqlserver中如何查询出连续日期记录的代码

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

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-05

匿名通过本文主要向大家介绍了连续日期,记录等相关知识,希望本文的分享对您有所帮助

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天,或任何一天。

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

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

相关文章

  • 2018-12-05PHP开发之程序员必掌握的 SQL 指南
  • 2017-05-11MySql 备忘录
  • 2018-12-05MySQL多表之间字段的匹配实现代码
  • 2018-12-05使用mysql_fetch_row()函数逐行获取结果集中的每条记录(PHP操作MySQL数据库的方法六)
  • 2018-12-05MySQL学习笔记之数据定义表约束,分页方法总结_MySQL
  • 2018-12-05如何备份和恢复MSSQL数据库
  • 2018-12-05MS SQLServer 批量附加数据库的方法
  • 2018-12-05mysql中关于删除语句大全总结(上)
  • 2018-12-05关于mysql数据库误删除后的数据恢复操作的示例代码分享
  • 2018-12-05MySQL 主从复制的原理和配置

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • 有关事件分析内容的文章推荐
    • SQLServer 附加数据库后出现只读或失败的解决方法
    • 从其他电脑访问本机的Mysql的设置方法
    • 将表数据生成Insert脚本 比较好用的生成插入语句的SQL脚本
    • 重装mysql出现无法start service的问题的解决方法
    • MySQL性能调优
    • mysql-MYSQL 5.7 root 密码 忘记
    • MYSQL ERROR 1045 (28000): Access denied for user (using password: YES)问题的解决
    • MySQL 配置文件my.cnf 例子最详细翻译
    • 以多种方式调用构造方法创建PDO对象

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有