Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Gerar datas entre intervalos de datas


Fácil no SQL 2005+; mais fácil se você tiver uma tabela de números ou de contagem. Eu fingi abaixo:
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)

Se você tiver uma tabela de contagem, substitua a subconsulta pela tabela. Sem recursão.