sql >> Database teknologi >  >> RDS >> Sqlserver

Antal ugedage i et datointerval i TSQL

create function dbo.f_countweekdays
(
  @DOW int, 
  @StartDate datetime, 
  @EndDate datetime
) 
returns int
begin
  return
  ( select datediff(wk, T2.St, T2.En) -
           case when T1.SDOW > @DOW then 1 else 0 end -
           case when T1.EDOW < @DOW then 1 else 0 end
    from (select datepart(dw, @StartDate),
                 datepart(dw, @EndDate)) as T1(SDOW, EDOW)
      cross apply (select dateadd(d, - T1.SDOW, @StartDate),
                          dateadd(d, 7 - T1.EDOW, @EndDate)) as T2(St, En))
end


  1. Sådan genforespørger du automatisk med LoaderManager

  2. Symfony2 doktrin mysql IN forespørgsel

  3. Hvordan laver man en begivenhed, der kører hver 24 timer?

  4. Hvorfor bruger MySQL ikke et indeks til en større end sammenligning?