sql >> Databasteknik >  >> RDS >> Sqlserver

Generera datum mellan datumintervall

Enkel på SQL 2005+; lättare om du har en siffror eller en tabell. Jag fejkade det nedan:

DECLARE @StartDate DATE = '20110901'
  , @EndDate DATE = '20111001'

SELECT  DATEADD(DAY, nbr - 1, @StartDate)
FROM    ( SELECT    ROW_NUMBER() OVER ( ORDER BY c.object_id ) AS Nbr
          FROM      sys.columns c
        ) nbrs
WHERE   nbr - 1 <= DATEDIFF(DAY, @StartDate, @EndDate)

Om du har en tabell, ersätt underfrågan med tabellen. Ingen rekursion.



  1. Entity Framework skapar ett tabellnamn i plural, men vyn förväntar sig ett singular tabellnamn?

  2. Varför använda Select Top 100 Percent?

  3. Oracle ORA-00979 - inte ett GROUP BY-uttryck

  4. Hanterad ODP.NET-drivrutin visas inte i dialogrutan Datakälla