SQL利用游标遍历日期查询的过程详解

 更新时间:2022年03月09日 08:27:18   作者:写BUG的小孟  
这篇文章主要介绍了SQL利用游标遍历日期查询,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

需求:我有个存储过程,每次执行需要带入一个连续的日期。我想遍历执行出一个月的时间,怎么搞?

我本来的想法是:程序里面写一个for循环,循环里面循环传日期去执行这个存储过程。

但是同事告诉我用游标,我从来没用过,就尝试了一下,没想到成功了哈哈,记录一下!

-- 1.声明游标变量
declare @begin_date varchar(50),
 @sumWeight varchar(50)
-- 2.声明游标
declare date_cursor cursor for -- date_cursor 是游标名 ,for 代表做什么
SELECT * FROM (
 select convert(varchar(10),dateadd(DAY,t2.number,t1.day),120) day from(select '2021-10'+'-01' day) t1,(select number from MASTER..spt_values WHERE TYPE='P' AND number>=0 and number<=31) t2 where convert(varchar(10),dateadd(DAY,t2.number,t1.day),120) like '2021-10%'
) T
WHERE  T.day >= '2021-10-01' AND T.day <= '2021-10-10'
--3.打开游标
open date_cursor
--4.提取数据
fetch next from date_cursor into @begin_date -- 将查询内容放入变量中
while @@FETCH_STATUS = 0  -- @@FETCH_STATUS 是一个全局变量,值为0时表示提取成功,存在数据, while 循环表示如果存在数据则执行
begin
    select @sumWeight= sum(NowNum) from MY_SP_LiTiKuDayStock where TIME=''+@begin_date+''  --我的业务处理
        print '开始时间:'+@begin_date+'当天重量:'+@sumWeight
        --print @begin_date
    fetch next from date_cursor into @begin_date  -- 继续提取下一行
end
--5.关闭游标
close date_cursor
--6.释放游标
deallocate date_cursor

写完大概就知道了:游标是个结果集,可以把它的每一条结果都给一个变量,你可以循环利用这个变量,相当于简介遍历了这个结果集

参考:

【SQL server数据库基础】游标的操作

https://blog.csdn.net/realoser/article/details/121529498

SQLServer用sql语句返回一个月所有的天数

https://blog.csdn.net/weixin_30265171/article/details/95729926

到此这篇关于SQL利用游标遍历日期查询的文章就介绍到这了,更多相关SQL游标遍历日期查询内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • SQL Server 索引维护sql语句

    SQL Server 索引维护sql语句

    SQL Server 索引维护sql语句,有需要的朋友可以参考下。
    2009-08-08
  • SQL Server2022数据库安装及配置过程

    SQL Server2022数据库安装及配置过程

    最近发现有诸多的小伙伴们对于sqlserver安装教程2022,sql server安装教程这个问题都颇为感兴趣的,这篇文章主要给大家介绍了关于SQL Server2022数据库安装及配置的相关资料,需要的朋友可以参考下
    2023-12-12
  • 高效的SQLSERVER分页查询(推荐)

    高效的SQLSERVER分页查询(推荐)

    Sqlserver数据库分页查询一直是Sqlserver的短板,闲来无事,想出几种方法,假设有表ARTICLE,字段ID、YEAR...(其他省略),数据53210条(客户真实数据,量不大),分页查询每页30条,查询第1500页(即第45001-45030条数据),字段ID聚集索引,YEAR无索引,Sqlserver版本:2008R2
    2013-04-04
  • mybatis调用sqlserver存储过程返回结果集的方法

    mybatis调用sqlserver存储过程返回结果集的方法

    这篇文章主要介绍了mybatis调用sqlserver存储过程返回结果集的方法,本文分两种方法给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-05-05
  • SQL Server异常代码处理的深入讲解

    SQL Server异常代码处理的深入讲解

    这篇文章主要给大家介绍了关于SQL Server异常代码处理的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2020-08-08
  • 写SQL查询时常用到的日期函数示例详解

    写SQL查询时常用到的日期函数示例详解

    文章介绍了SQL中常用的日期和时间函数,包括获取当前日期和时间、提取日期和时间的各个部分、计算日期和时间的间隔、格式化日期和时间、计算两个日期之间的差异、转换日期格式以及获取星期和季度等,感兴趣的朋友一起看看吧
    2025-02-02
  • 必备 SQL 查询优化技巧提升网站访问速度

    必备 SQL 查询优化技巧提升网站访问速度

    在这篇文章中,我将介绍如何识别导致性能出现问题的查询,如何找出它们的问题所在,以及快速修复这些问题和其他加快查询速度的方法
    2018-01-01
  • SQL Server数据库错误829的修复办法

    SQL Server数据库错误829的修复办法

    SQL Server 错误 829 是与 SQL Server 页面相关的错误,当用户尝试自动修复主数据库中的页面,但由于某种原因而失败时,可能会发生 SQL Server 错误 829,所以本文给大家介绍了如何修复 SQL Server 数据库错误 829,需要的朋友可以参考下
    2024-08-08
  • SQL Server中的RAND函数的介绍和区间随机数值函数的实现

    SQL Server中的RAND函数的介绍和区间随机数值函数的实现

    这篇文章主要介绍了SQL Server中的RAND函数的介绍和区间随机数值函数的实现 的相关资料,需要的朋友可以参考下
    2015-12-12
  • SQL分页语句的三种方案

    SQL分页语句的三种方案

    这篇文章介绍了SQL分页语句的三种方案,有需要的朋友可以参考一下
    2013-10-10

最新评论