sql >> Database >  >> RDS >> Sqlserver

Genereer datums tussen datumbereiken

Gemakkelijk op SQL 2005+; makkelijker als je een getallen- of teltafel hebt. Ik heb het hieronder vervalst:

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)

Als u een tallytabel heeft, vervangt u de subquery door de tabel. Geen recursie.



  1. SQL-fout met Order By in subquery

  2. Genereer online PL/SQL-procedure om gegevens in Oracle-tabel te importeren

  3. DevOps Database Woordenlijst voor de MySQL-beginner

  4. Database implementeren vanuit bronbeheer