一个月有多少个周
时间:2011-12-09
来源:互联网
出来数据是
周数 日期
第一周 2011-11-01——2011-11-06
第二周 2011-11-07——2011-11-13
第三周 2011-11-14——2011-11-20
第四周 2011-11-21——2011-11-27
第五周 2011-11-28——2011-11-30
高手们。帮忙给想想。。要不给个例子也成。谢谢了
作者: wq18734453997 发布时间: 2011-12-09
作者: wq18734453997 发布时间: 2011-12-09
作者: wq18734453997 发布时间: 2011-12-09
作者: fredrickhu 发布时间: 2011-12-09
declare @year varchar(4),@month varchar(2) set @year='2011'; set @month='11'; with cte as( select dense_rank() over(order by datepart(week,DATEADD(DAY,number,@year+@month+'01'))) as week ,convert(char(10),DATEADD(DAY,number,@year+@month+'01'),120) as time from master.dbo.spt_values where type='P' and DATEADD(DAY,number,@year+@month+'01') between @year+@month+'01' and dateadd(day,-1,dateadd(month,1,@year+@month+'01')) ) select '第'+convert(varchar(1),week)+'周',MIN(time)+'---'+MAX(time) from cte as a group by week --------------------------------- 周数 日期 ----- ----------------------- 第1周 2011-11-01---2011-11-05 第2周 2011-11-06---2011-11-12 第3周 2011-11-13---2011-11-19 第4周 2011-11-20---2011-11-26 第5周 2011-11-27---2011-11-30
作者: chtzhking 发布时间: 2011-12-09
SQL code
declare @year varchar(4),@month varchar(2) set @year='2011'; set @month='11'; with cte as( select dense_rank() over(order by datepart(week,dateadd(day,-1,DATEADD(DAY,number,@year+@month+'01')))) as week ,convert(char(10),DATEADD(DAY,number,@year+@month+'01'),120) as time from master.dbo.spt_values where type='P' and DATEADD(DAY,number,@year+@month+'01') between @year+@month+'01' and dateadd(day,-1,dateadd(month,1,@year+@month+'01')) ) select '第'+convert(varchar(1),week)+'周' as '周数',MIN(time)+'---'+MAX(time) as '日期' from cte as a group by week ------------------------------------- 周数 日期 ----- ----------------------- 第1周 2011-11-01---2011-11-06 第2周 2011-11-07---2011-11-13 第3周 2011-11-14---2011-11-20 第4周 2011-11-21---2011-11-27 第5周 2011-11-28---2011-11-30
作者: chtzhking 发布时间: 2011-12-09
作者: chtzhking 发布时间: 2011-12-09
作者: wq18734453997 发布时间: 2011-12-09
作者: wq18734453997 发布时间: 2011-12-09
declare @year varchar(4),@month varchar(2) set @year='2011'; set @month='01'; with cte as ( select dense_rank() over(order by case when DATEADD(DAY,number,@year+@month+'01')=@year+'01'+'01' then datepart(week,@year+'01'+'01') else datepart(week,dateadd(day,-1,DATEADD(DAY,number,@year+@month+'01'))) end) as week ,convert(char(10),DATEADD(DAY,number,@year+@month+'01'),120) as time from master.dbo.spt_values where type='P' and DATEADD(DAY,number,@year+@month+'01') between @year+@month+'01' and dateadd(day,-1,dateadd(month,1,@year+@month+'01')) ) select '第'+convert(varchar(1),week)+'周' as '周数',MIN(time)+'---'+MAX(time) as '日期' from cte as a group by week ------------------------------------ 周数 日期 ----- ----------------------- 第1周 2011-01-01---2011-01-02 第2周 2011-01-03---2011-01-09 第3周 2011-01-10---2011-01-16 第4周 2011-01-17---2011-01-23 第5周 2011-01-24---2011-01-30 第6周 2011-01-31---2011-01-31
作者: chtzhking 发布时间: 2011-12-09
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28