存储过程中传入月份(如2019-06),遍历一个月份中的每一天 ,并列转行

灌木子 2019-09-23 04:48:30
存储过程中传入月份(如2019-06),遍历一个月份中的每一天 ,并列转行
...全文
119 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
文盲老顾 2019-09-23
  • 打赏
  • 举报
回复
declare @dt date,@first date,@days int,@sql nvarchar(max)

set @dt = '2019-6-8'

select @first = dateadd(d,-datepart(d,@dt)+1,@dt),@days=31-datepart(d,dateadd(d,31,@first))

select @sql = 'select * from (select dateadd(d,number,@first) as dt,number+1 as dayNumber from master..spt_values where type=''p'' and number<=@days) a pivot(max(dt) for dayNumber in ('
	+ stuff((
		select ',['+convert(varchar,number+1)+']' from master..spt_values where type='p' and number<=@days for xml path('')
	),1,1,'')+')) p'

exec sp_executesql @sql,N'@first date,@days int',@first=@first,@days=@days

22,302

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧