sql >> Databáze >  >> RDS >> Sqlserver

tsql:Jak načíst poslední datum každého měsíce mezi daným obdobím

Můžete použít CTE pro získání všech posledních dnů v měsíci v definovaném rozsahu

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. Vytvořte více než jeden neseskupený index ve stejném sloupci na serveru SQL Server

  2. při vložení perského znaku do Oracle db vidím otazník

  3. Uložte formátovaný text do databáze a načtěte jej zpět „tak jak je“ jako formátovaný řetězec

  4. konvence pojmenování mysql