create table #
(col datetime)
declare @s varchar(10),@i int
set @s='200714'
set @i=0
while @i<7
begin
insert into # select dateadd(day,@i,dateadd(wk,cast(right(@s,2) as int)-1,convert(datetime,left(@s,4)+'-1-1')))
set @i=@i+1
end
select * from #
drop table #
/*
col
-----------------------
2007-04-02 00:00:00.000
2007-04-03 00:00:00.000
2007-04-04 00:00:00.000
2007-04-05 00:00:00.000
2007-04-06 00:00:00.000
2007-04-07 00:00:00.000
2007-04-08 00:00:00.000
*/
declare @time int,@year int,@month int
set @time=200714
set @year=left(@time,4)
set @month=right(@time,2)
select 本周一=dateadd(wk,@month-1,cast(ltrim(@year)+'-1-1' as datetime)),
本周日=dateadd(day,6,dateadd(wk,@month-1,cast(ltrim(@year)+'-1-1' as datetime)))
/*
本周一 本周日
----------------------- -----------------------
2007-04-02 00:00:00.000 2007-04-08 00:00:00.000
declare @str as varchar(6)
set @str = '200714'
declare @year as datetime
set @year = cast(left(@str,4) + '-01-01' as datetime)
declare @week as int
set @week = cast(substring(@str,5,len(@str)) as int)
SELECT DATEADD(wk, DATEDIFF(wk,0,dateadd(week,@week,@year)), 0)-1 as 周日, DATEADD(wk, DATEDIFF(wk,0,dateadd(week,@week,@year)), 0)+5 as 周六