计算SQL Server 2005中几天之间的周数

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)