sql >> Databasteknik >  >> RDS >> Sqlserver

hur får man start- och slutdatum för alla veckor mellan två datum i SQL-servern?

Du kan använda en rekursiv CTE för att generera listan med datum:

;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.

Sedan kan du lägga till detta till ditt bord för att returnera ytterligare information.



  1. PostgreSQL GROUP_CONCAT() Ekvivalent

  2. få JOIN-tabellen som en rad resultat med PostgreSQL/NodeJS

  3. Så här fixar du "Server är inte konfigurerad för DATAÅTKOMST" i SQL Server

  4. Hur man aktiverar alla begränsningar för kontroll och främmande nyckel i en databas i SQL Server (T-SQL-exempel)