日期:2014-05-18  浏览次数:20565 次

给出年月获取这个月的周段时间段(从周一开始到周日)
给出年月获取这个月的周段时间段(从周一开始到周日):
比如给2012年1月,则得到
1月1日-1月1日
1月2日-1月8日
1月9日-1月15日
1月16日-1月22日
1月23日-1月29日
1月30日-1月31日

------解决方案--------------------
楼主弄错了,2011-1-1是周六,如果你以周一为一周第一天的话,那第一周有两天:
SQL code
declare @ym varchar(7)
set @ym='2011-01'
set datefirst 1
select wk,MIN(d)d1,MAX(d)d2 from (
select DATEPART(wk,d)wk,d from (
select dateadd(D,number,@ym+'-01')d
from master..spt_values
where type='p' and convert(varchar(7),dateadd(D,number,@ym+'-01'),120)=@ym
)t)t group by wk
/*
wk          d1                      d2
----------- ----------------------- -----------------------
1           2011-01-01 00:00:00.000 2011-01-02 00:00:00.000
2           2011-01-03 00:00:00.000 2011-01-09 00:00:00.000
3           2011-01-10 00:00:00.000 2011-01-16 00:00:00.000
4           2011-01-17 00:00:00.000 2011-01-23 00:00:00.000
5           2011-01-24 00:00:00.000 2011-01-30 00:00:00.000
6           2011-01-31 00:00:00.000 2011-01-31 00:00:00.000

(6 行受影响)

*/