sql >> Databasteknik >  >> RDS >> Sqlserver

Antal veckodagar i ett datumintervall 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. Förklara MySQL Joins på ett enkelt språk

  2. mysql-fråga för att uppdatera fältet till max(fält) + 1

  3. SQL Server Active Sessions and Status

  4. PostgreSQL - gruppering efter jsonb-kolumn