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

jak získat počáteční a koncové datum všech týdnů mezi dvěma daty na serveru SQL?

Ke generování seznamu dat můžete použít rekurzivní CTE:

;with cte as
(
  select @sDate StartDate, 
    DATEADD(wk, DATEDIFF(wk, 0, @sDate), 6) EndDate
  union all
  select dateadd(ww, 1, StartDate),
    dateadd(ww, 1, EndDate)
  from cte
  where dateadd(ww, 1, StartDate)<=  @eDate
)
select *
from cte

Viz SQL Fiddle with Demo.

Pak to můžete připojit ke svému stolu a vrátit další podrobnosti.



  1. 2 způsoby, jak zjistit, zda se v instanci serveru SQL Server stále používají zastaralé funkce

  2. Chyba 1064 v CREATE TABLE ... TYPE=MYISAM

  3. Velká písmena v názvech dnů a měsíců při formátování dat v Oracle

  4. Visual Basic for Applications v aplikaci Microsoft Access