给出年月获取这个月的周段时间段(从周一开始到周日)
给出年月获取这个月的周段时间段(从周一开始到周日):
比如给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是周六,如果你以周一为一周第一天的话,那第一周有两天:
declare @ym varchar(7)set @ym='2011-01'set datefirst 1select wk,MIN(d)d1,MAX(d)d2 from (select DATEPART(wk,d)wk,d from (select dateadd(D,number,@ym+'-01')dfrom master..spt_valueswhere 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.0002 2011-01-03 00:00:00.000 2011-01-09 00:00:00.0003 2011-01-10 00:00:00.000 2011-01-16 00:00:00.0004 2011-01-17 00:00:00.000 2011-01-23 00:00:00.0005 2011-01-24 00:00:00.000 2011-01-30 00:00:00.0006 2011-01-31 00:00:00.000 2011-01-31 00:00:00.000(6 行受影响)*/