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

MS SQL Server 2008 :Mendapatkan tanggal mulai dan tanggal akhir minggu hingga 8 minggu ke depan

Coba ini:

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

Ini akan memberi Anda sesuatu seperti ini:

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 

Atau Anda dapat mengubah pilihan terakhir jika Anda tidak menginginkan komponen waktu, seperti ini:

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. Kirim SMS menggunakan pemicu dan prosedur tersimpan dari SQL Server 2008

  2. SQL Server (TSQL) - Apakah mungkin untuk membuat pernyataan EXEC secara paralel?

  3. SQL:Bagaimana saya bisa mendapatkan nilai atribut dalam tipe data XML?

  4. Menggabungkan nilai baris T-SQL

  5. lihat nilai yang diubah setelah pernyataan pembaruan