入下图:传入:2019-11,得到左边数据。
declare @rq varchar(10),--传入值
@djz_begin int,--当期月第一天是周几
@zhouji int,--周几
@s_rq char(10),--当前月开始日期
@e_rq char(10)--最后一天
set @rq='2019-02'
set @djz_begin=0
set @zhouji=2
set @s_rq=@rq+'-01'
set @e_rq=convert(char(10),dateadd(M,1,@s_Rq)-1,121)
select @djz_begin=DATEPART(WEEKDAY,@s_rq)-1--判断当期月第一天是周几
select 1,@s_rq,convert(char(10),dateadd(day,7-@djz_begin,@s_rq),121)
set @s_rq=convert(char(10),dateadd(day,7-@djz_begin,@s_rq),121)
while @zhouji<=5
begin
if datediff(day,@s_rq,@e_Rq)<7
begin
set @s_rq=convert(char(10),dateadd(day,1,@s_rq),121)
break;
end
select @zhouji,
convert(char(10),dateadd(day,1,@s_rq),121),
convert(char(10),dateadd(day,7-@djz_begin,dateadd(day,@djz_begin,@s_rq)),121)
set @s_rq=convert(char(10),dateadd(day,7,@s_rq),121)
set @zhouji=@zhouji+1
end
select @zhouji,@s_rq,@e_rq