sql >> Database teknologi >  >> RDS >> Sqlserver

hvordan får man start- og slutdatoerne for alle uger mellem to datoer i SQL server?

Du kan bruge en rekursiv CTE til at generere listen over datoer:

;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

Se SQL Fiddle with Demo.

Så kan du tilføje dette til dit bord for at returnere de yderligere detaljer.



  1. NextForm v3:Fem muligheder for data- og databasemigrering

  2. Oracle PL/SQL-strengsammenligningsproblem

  3. 2 funktioner, der returnerer måneden fra en dato i Oracle

  4. Alfanumerisk sortering med PostgreSQL