SQL Server获取月度列表
-- 获取月度列表
if exists(select 1 from sysobjects where name = 'proc_GetDateMonthList' and type = 'p')drop proc proc_GetDateMonthList
GO
create proc proc_GetDateMonthList@BeginDate varchar(6)
,@EndDate varchar(6)
,@Delimiter varchar(1) = ','
as
/**/
declare@iBegin int, @iEnd int, @iBeginMon int, @iEndMon int, @iYear int, @iMon int, @iTempYear int, @iTempMon int, @iStart int , @iStop int,@sBeginMon varchar(2), @sEndMon varchar(2), @sResult varchar(8000), @s varchar(6)
beginif (LEN(@BeginDate) <> 6) or (LEN(@EndDate) <> 6)beginraiserror('日期格式错误!', 16, 1)returnendif (CAST(@EndDate as int) - cast(@BeginDate as int)) < 0beginraiserror('日期范围错误!', 16, 1)returnendif @BeginDate = @EndDatebeginselect @BeginDatereturnendselect @iBegin = SUBSTRING(@BeginDate, 1, 4), @iEnd = SUBSTRING(@EndDate, 1, 4)set @iYear = @iEnd - @iBeginif @iYear < 0beginraiserror('日期范围错误!', 16, 1)returnendif @iYear > 90beginraiserror('日期范围错误,最大跨年限度为90年!', 16, 1)returnend-- 开始处理set @sResult = ''select @iBeginMon = SUBSTRING(@BeginDate, 5, 2), @iEndMon = SUBSTRING(@EndDate, 5, 2)-- 不跨年if @iYear = 0beginset @iMon = @iEndMon - @iBeginMon if @iMon > 0beginset @sResult = @BeginDateset @iTempMon = 0while @iTempMon < @iMon - 1beginset @s = CAST(@BeginDate as int) + 1set @sResult = @sResult + @Delimiter + @sset @iTempMon = @iTempMon + 1 endset @sResult = @sResult + @Delimiter + @EndDateend end-- 跨年if @iYear > 0begin-- 从开始到结束,每次+1,当月份 > 12 年度进1,月度归1select @iStart = @BeginDate, @iStop = @EndDatewhile @iStart <= @iStopbeginselect @iTempYear = SUBSTRING(convert(varchar(6),@iStart), 1, 4), @iTempMon = SUBSTRING(convert(varchar(6),@iStart), 5, 2)if @iTempMon > 12beginset @iStart = (@iTempYear + 1)*100 + 1endset @s = CONVERT(varchar(6), @iStart)--整合结果if LEN(@sResult) = 0set @sResult = @selseset @sResult = @sResult + @Delimiter + @sset @iStart = @iStart + 1endendselect @sResult
end
GO-- Test
exec proc_GetDateMonthList '201210', '201512'
转载于:https://www.cnblogs.com/junko/p/3726225.html
SQL Server获取月度列表相关推荐
- Sql Server获取数据库名,表信息,字段信息,主键信息等
--Sql Server获取数据库名,表信息,字段信息,主键信息等--获取所有数据库名: SELECT name FROM master..sysdatabases WHERE name NOT IN ...
- sql server 获取本机的ip地址
--sql server 获取本机的ip地址 -- 其实就是使用xp_cmdshell 来获取信息,然后对信息进行筛选. --开启xp_cmdshell exec sp_configure 'show ...
- 使用SQL Server 获取插入记录后的ID(自动编号)
使用SQL Server 获取插入记录后的ID(自动编号) jingxian 本篇文章是对使用SQL Server获取插入记录后的ID(自动编号)的方法进行了详细的分析介绍,需要的朋友参考下 最近在开 ...
- 使用SQL Server 获取插入记录后的自增ID(自动编号)
http://www.jb51.net/article/39029.htm 本篇文章是对使用SQL Server获取插入记录后的ID(自动编号)的方法进行了详细的分析介绍,需要的朋友参考下 最近在开发 ...
- sql server 获取当前日期前12个月的月份sql 语句
sql server 获取当前日期前12个月的月份sql 语句 select convert(varchar(7),dateadd(mm,number,dateadd(month,-11,getdat ...
- SQL server获取数据库数据
SQL server获取数据库数据 两表对比,查询A表中缺少的字段 例如 获取数据库指定表中的列 例如 获取某个存储过程的参数 两表对比,查询A表中缺少的字段 select a.name as nam ...
- SQL Server获取特定字符前的数字
关于Sql Server如何获取特定字符前的数字,网上有很多答案,但感觉要么太局限,要么就是太复杂,下面是我如何实现获取特定字符前的数字这个功能,供大家参考. /*获取特定字符前的数字*/ DECLA ...
- php sql查看本月记录,SQL Server 获取本周,本月,本年等时间内记录
datediff(week,zy_time,getdate())=0 //查询本周 datediff(month,zy_time,getdate())=0 //查询本月 本季:select * fro ...
- SQL Server获取当年第一天当年最后一天当月第一天当月最后一天
SQL Server 对日期的操作函数的使用 在编写sql的时候,会碰到对日期的处理,特别是日期区间对业务数据的限制. 如:用户数据的是一个固定月份 2020-03 这个时候需要匹配数据就是2020- ...
- sql server获取当前日期
问题引出: Sql Server 里 dateTime 数据类型,会精确到毫秒.如果我们 在插入一条数据的时候,使用 GetDate() 记录 这个记录插入的时间,则会插入当前时间,精确到毫秒.在查询 ...
最新文章
- 气象背景场_“把脉”风雨 服务为民——甘肃研究型气象预报业务体系发展扫描...
- vim 多行添加注释,取消注释
- java 不可修改的map_Java中如何实现不可变Map详解
- (进阶篇)Redis6.2.0 集群 主从复制_搭建_01
- 在linux上禁用ip,防止frps转发的端口被爆破,并屏蔽境外ip
- Python进阶全系列
- win7 计算器 android,win7计算器
- 基于程序员职业对于婚配问题的研究——程序员为何单身?
- interface 相关知识
- wxid 转微信号 如何找到原始id教程
- excel合并sheet表格
- 用 PHP-GTK2 做 Win32 GUI 程序
- DL在地球物理中的应用及发展趋势
- Js设置动态的key指
- Google Chrome 81.0.4044.138 绿色增强版
- 适合Linux系统的笔记本推荐,推荐5款让你的旧电脑重获新生的Linux发行版
- 【查找各日期段内的银行贷款利率问题】
- 为什么外链建设对于谷歌SEO至关重要?
- 计算机专业的职业探索,职业教育计算机教学的探索
- 《道德经》与“低熵”思想炫酷实现(.html)
热门文章
- LU分解的矩阵逆运算
- 微信公众号测试账号获取授权须关注
- 项目中用到的一些特殊字符和图标
- Aria2 - OS X 下载百度云资源神器
- [转]VC 键盘虚拟码
- Python操作SQLAlchemy
- ubuntu-12.04.5-desktop-amd64.iso:ubuntu-12.04.5-desktop-amd64:安装Oracle11gR2
- Oracle数据导入导出imp/exp sp2-0734:未知的命令开头'imp...解决方法
- UITextfiled 的属性注释简介
- 2012年4月份第2周51Aspx源码发布详情