2

入力があります: @dateInput.

例: @dateInput = 2013/10/02(形式: yyyy/MM/dd)。

T-SQLでこのように10月に週(月曜日から金曜日まで)を取得するにはどうすればよいですか

StartWeek                  EndWeek
2013-10-01 00:00:00.000    2013-10-05 00:00:00.000
2013-10-07 00:00:00.000    2013-10-12 00:00:00.000
2013-10-14 00:00:00.000    2013-10-19 00:00:00.000
2013-10-21 00:00:00.000    2013-10-26 00:00:00.000
2013-10-28 00:00:00.000    2013-10-31 00:00:00.000

皆さんありがとう !

4

1 に答える 1

1

おおよその年がわかっている場合は、年と使用するときにペアを生成できます

declare @input datetime
set @input = '20131002'

declare @monday datetime
set @monday='20121231'

declare @beginOfMonth datetime
declare @endOfMonth datetime

set @beginOfMonth = Substring(Convert(char,@input,102),1,8)+'01'
set @endOfMonth = DateAdd(month,1,@beginOfMonth)-1

declare @i int
set @i=1

create table #week
(StartDate datetime,
EndDate datetime)

while (@i <= 52)
begin
 insert into #week
 values (@monday, DateAdd(day,5,@monday))
 set @monday=DateAdd(week,1,@monday)
 set @i=@i+1
end

select * from #week
where StartDate between @beginOfMonth and @endOfMonth and EndDate between @beginOfMonth and    @endOfMonth 

drop table #week
于 2013-11-09T18:51:37.423 に答える