Générer un jeu de résultats de l'incrémentation dates en TSQL

Envisager la nécessité de créer un jeu de résultats de dates. Nous avons de début et dates de fin, et nous tenons à générer une liste de dates entre les deux.

DECLARE  @Start datetime
         ,@End  datetime
DECLARE @AllDates table
        (@Date datetime)

SELECT @Start = 'Mar 1 2009', @End = 'Aug 1 2009'

--need to fill @AllDates. Trying to avoid looping. 
-- Surely if a better solution exists.

Évaluer la mise en œuvre avec une WHILE boucle:

DECLARE @dCounter datetime
SELECT @dCounter = @Start
WHILE @dCounter <= @End
BEGIN
 INSERT INTO @AllDates VALUES (@dCounter)
 SELECT @dCounter=@dCounter+1 
END

Question: Comment voulez-vous créer un ensemble de dates qui sont à l'intérieur d'une plage définie par l'utilisateur à l'aide de T-SQL? Supposons SQL 2005+. Si votre réponse est à l'aide de SQL 2008, veuillez marque en tant que telle.

  • La version de MSSQL Server utilisez-vous? Si nous donnons des exemples de 2008 et que vous êtes à l'aide de 2000, alors il serait inutile de parler de 2008 options.
  • Merci James. Je pensais que j'avais précisé dans la question avec " d'assumer 2005+'.
InformationsquelleAutor p.campbell | 2009-09-25