sql >> Databasteknik >  >> RDS >> Sqlserver

tsql:Hur man hämtar det sista datumet i varje månad mellan ett givet datumintervall

Du kan använda CTE för att få alla sista dagar i månaden inom det definierade intervallet

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. MySQL välj före efter rad

  2. SQL aritmetiska operatörer

  3. Skillnaden mellan mysql_fetch_array och mysql_fetch_row?

  4. Hur man söker efter flera värden separerade med kommatecken i mysql