sql >> Databasteknik >  >> RDS >> Sqlserver

Enklaste sättet att fylla i en temptabell med datum mellan och inklusive 2 datumparametrar

Detta fungerar även om @StartDate inte är den första i månaden. Jag antar att om det inte är början på månaden så vill du börja med den första i nästa månad. Ta annars bort +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. Partitionstabell byter namn automatiskt i ORACLE

  2. Introduktion till PL/SQL-undantagshantering i Oracle Database

  3. Tabell med namnet "gilla" i MySQL

  4. Hur aktiverar jag MySQL långsamma frågelogg?