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

MS SQL Server 2008:Lấy ngày bắt đầu và ngày kết thúc trong tuần đến 8 tuần tới

Hãy thử điều này:

DECLARE @startDate DATETIME
DECLARE @currentDate DATETIME
DECLARE @numberOfWeeks INT

DECLARE @dates TABLE(
    StartDate DateTime,
    EndDate DateTime 
)

SET @startDate = GETDATE()--'2012-01-01' -- Put whatever you want here
SET @numberOfWeeks = 8 -- Choose number of weeks here
SET @currentDate = @startDate

while @currentDate < dateadd(week, @numberOfWeeks, @startDate)
begin
    INSERT INTO @Dates(StartDate, EndDate) VALUES (@currentDate, dateadd(day, 6, @currentDate))
    set @currentDate = dateadd(day, 7, @currentDate);
end

SELECT * FROM @dates

Điều này sẽ cung cấp cho bạn một cái gì đó như thế này:

StartDate           EndDate 
21/03/2013 11:22:46 27/03/2013 11:22:46 
28/03/2013 11:22:46 03/04/2013 11:22:46 
04/04/2013 11:22:46 10/04/2013 11:22:46 
11/04/2013 11:22:46 17/04/2013 11:22:46 
18/04/2013 11:22:46 24/04/2013 11:22:46 
25/04/2013 11:22:46 01/05/2013 11:22:46 
02/05/2013 11:22:46 08/05/2013 11:22:46 
09/05/2013 11:22:46 15/05/2013 11:22:46 

Hoặc bạn có thể chỉnh sửa lựa chọn cuối cùng nếu bạn không muốn thành phần thời gian, như sau:

SELECT CONVERT(VARCHAR, StartDate, 103), CONVERT(VARCHAR, EndDate, 103) FROM @dates


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách kiểm tra mức độ tương thích của cơ sở dữ liệu trong SQL Server bằng T-SQL

  2. Nhập nhiều tệp CSV vào SQL Server từ một thư mục

  3. Cách tối ưu để nối / tổng hợp các chuỗi

  4. Làm cách nào để chỉnh sửa nhanh các giá trị trong bảng trong SQL Server Management Studio?

  5. Khung thực thể - Kích thước hàng lớn hơn kích thước hàng tối đa cho phép là 8060