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

làm thế nào để lấy ngày bắt đầu và ngày kết thúc của tất cả các tuần giữa hai ngày trong máy chủ SQL?

Bạn có thể sử dụng CTE đệ quy để tạo danh sách ngày:

;with cte as
(
  select @sDate StartDate, 
    DATEADD(wk, DATEDIFF(wk, 0, @sDate), 6) EndDate
  union all
  select dateadd(ww, 1, StartDate),
    dateadd(ww, 1, EndDate)
  from cte
  where dateadd(ww, 1, StartDate)<=  @eDate
)
select *
from cte

Xem SQL Fiddle với Demo.

Sau đó, bạn có thể tham gia phần này vào bảng của mình, để trả lại các chi tiết bổ sung.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ví dụ về SIN () trong SQL Server

  2. Khóa ngoại có thể là NULL và / hoặc trùng lặp không?

  3. Sự khác biệt giữa JOIN và INNER JOIN

  4. câu lệnh sử dụng sql với biến

  5. Sử dụng sp_help_schedule trong SQL Server