sql >> Database teknologi >  >> RDS >> Sqlserver

Den nemmeste måde at udfylde en midlertidig tabel med datoer mellem og inklusive 2 datoparametre

Dette virker, selvom @StartDate ikke er den første i måneden. Jeg går ud fra, at hvis det ikke er starten på måneden, vil du gerne begynde med den første i næste måned. Ellers fjern +1.:

;WITH cte AS (
SELECT CASE WHEN DATEPART(Day,@StartDate) = 1 THEN @StartDate 
            ELSE DATEADD(Month,DATEDIFF(Month,0,@StartDate)+1,0) END AS myDate
UNION ALL
SELECT DATEADD(Month,1,myDate)
FROM cte
WHERE DATEADD(Month,1,myDate) <=  @EndDate
)
SELECT myDate
FROM cte
OPTION (MAXRECURSION 0)


  1. Sum indtil et bestemt punkt - MySql

  2. Streaming af data fra Postgres til Python

  3. Hvordan aktiverer jeg MSDTC på SQL Server?

  4. NodeJS Server med mysql hænger