Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

tsql:Jak pobrać ostatnią datę każdego miesiąca między podanym zakresem dat

Możesz użyć CTE za uzyskanie wszystkich ostatnich dni miesiąca w określonym zakresie

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Odpowiednik OFFSET w SQL Server

  2. Wybierz liczbę z liczbą 0

  3. LIMIT 10..20 w SQL Server

  4. Nawiązywanie połączenia z Script Task (VB) do Menedżera połączeń OLEDB pakietu SSIS

  5. wystąpił błąd podczas nawiązywania połączenia z SQL Server