Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Брой дни от седмицата в диапазон от дати в 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да изберете имена на колони от множество таблици в SQL Server 2000-2008, които са в набор от имена

  2. Как да изпълним асинхронно съхранена процедура на sql сървър и да гарантираме, че е завършена

  3. DATEDIFF във формат ЧЧ:ММ:СС

  4. Получаване на минимум две стойности в SQL

  5. Как да напиша .Skip(1000).Take(100) на LINQ в чист SQL?