Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

tsql:Cara mengambil tanggal terakhir setiap bulan antara rentang tanggal yang diberikan

Anda dapat menggunakan CTE untuk mendapatkan semua hari terakhir dalam sebulan dalam rentang yang ditentukan

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. Kesalahan 0xc0202049:Tugas Aliran Data 1:Kegagalan memasukkan ke dalam kolom hanya-baca

  2. Bagaimana cara meningkatkan kinerja untuk pemfilteran datetime di SQL Server?

  3. Bagaimana cara menggabungkan tabel kosong?

  4. Cara Menggunakan GOTO di SQL Server

  5. Bisakah saya menggunakan aliran untuk INSERT atau UPDATE baris di SQL Server (C#)?