Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

tsql:Cách truy xuất ngày cuối cùng của mỗi tháng giữa phạm vi ngày nhất định

Bạn có thể sử dụng CTE để nhận được tất cả các ngày cuối cùng của tháng trong phạm vi đã xác định

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. Làm cách nào để tìm cổng cho MS SQL Server 2008?

  2. Hiệu suất truy vấn Entity Framework khác hẳn với việc thực thi SQL thô

  3. Truy vấn máy chủ được liên kết động

  4. SQL:Sắp xếp theo chuỗi con của các chữ cái và số hỗn hợp

  5. Tại sao IsNull chậm gấp đôi so với liên kết (cùng một truy vấn)?