sql >> Database >  >> RDS >> Sqlserver

tsql:Hoe de laatste datum van elke maand tussen een bepaald datumbereik op te halen

U kunt CTE gebruiken om alle laatste dagen van de maand binnen het gedefinieerde bereik te krijgen

Declare @Start datetime
Declare @End datetime

Select @Start = '20130808'
Select @End = '20131111'
;With CTE as
(
Select @Start  as Date,Case When DatePart(mm,@Start)<>DatePart(mm,@Start+1) then 1 else 0 end as [Last]
UNION ALL
Select Date+1,Case When DatePart(mm,Date+1)<>DatePart(mm,Date+2) then 1 else 0 end from CTE
Where Date<@End
)

Select * from CTE
where [Last]=1   OPTION ( MAXRECURSION 0 )


  1. Som kolommen met null-waarden in orakel

  2. Cast String naar int en gebruik in Where-clausule

  3. Mysql datetime DEFAULT CURRENT_TIMESTAMP fout

  4. Beste manier om grote (UUID) als primaire sleutel van MySQL-tabel te verwerken