提供2011年,再提供月分11月
出来数据是
周数 日期
第一周 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
高手们。帮忙给想想。。要不给个例子也成。谢谢了
出来数据是
周数 日期
第一周 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
高手们。帮忙给想想。。要不给个例子也成。谢谢了
解决方案 »
- 求一个 去重复值的sql语句
- Sql语句:怎样挑选某个字段重复记录中的前2条记录?
- 一个关于BCP的问题
- char 資料型別轉換成 datetime 資料型別時,產生超出範圍的 datetime 值。
- (追加分)求救:IIS安装成功测试失败,和wince5.0(c++)访问webservers问题
- 求一句SQL。
- SQL查詢?
- 诸位大侠,Line 1: incorrect syntax near '!' 这句话什么意思啊?
- 存储过程的问题 运行时说我数据类型转换错误 不知道什么原因 恳求高手指教
- 有谁知道用VC6在没有服务器端程序的情况下,如何通过账号操作远程SQL数据库.
- 求条存储过程
- 怎样写这个sql批量修改数据库历史数据!!!!!!
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
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
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