use*_*448 2 sql sql-server-2005
我在这里再次寻求帮助.这就是我想要做的.我有一个函数或sp,它有3个参数.startdate, enddate,和dayofweek(m,t,w等),需要计算开始和结束日期之间的周数.
例如,如果我通过startday=2011-05-02, enddate=2011-05-10并且dayofweek如周二那样,它应该计为2,如果我dayofweek在周三通过则它应该计数1.
我能够使用这段代码,有没有更好的方法来做到这一点?根据使用ClosingStartDate情况调整到正确的开始日期dayofweek.所以基本上,代码是添加1周,runningdate并根据使用的周调整运行日期.
没有while..loop的任何其他方式.???
declare @NoofPeriods int
declare @runningdate datetime
set @runningdate = @ClosingStartDate
set @NoofPeriods=0
while (@runningdate <= @NextStatementClosingdate)
begin
set @NoofPeriods=@NoofPeriods+1
set @runningdate = Dateadd(day,7,@runningdate)
end
Run Code Online (Sandbox Code Playgroud)
小智 5
它已内置于SQL 2005中.
SELECT DATEDIFF(week, @startdate, @enddate)
Run Code Online (Sandbox Code Playgroud)