sql >> Databáze >  >> RDS >> Sqlserver

Počet dnů v týdnu v časovém období v 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. Postgres se nemohl připojit k serveru

  2. Zlepšení funkce, kterou UPSERTs zakládá na vstupním poli

  3. Jak opravit „Procedura očekává parametr ‚@statement‘ typu ‚ntext/nchar/nvarchar‘.“ Chyba na serveru SQL Server

  4. Jak převedu tento přístupový dotaz na dotaz mySQL