sql >> Database >  >> RDS >> Sqlserver

hoe de begin- en einddatum van alle weken tussen twee datums in SQL-server te krijgen?

U kunt een recursieve CTE gebruiken om de lijst met datums te genereren:

;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

Zie SQL Fiddle met demo.

Dan kun je dit aan je tafel toevoegen om de aanvullende details terug te sturen.



  1. Best practices voor PostgreSQL-beveiliging

  2. Een standaardwaarde instellen voor een bestaande kolom

  3. 3 manieren om een ​​lijst met SQL Server Agent-taken (T-SQL) te retourneren

  4. Waarden selecteren uit Oracle Table Variable / Array?