sql >> データベース >  >> RDS >> Sqlserver

MS SQL Server 2008 :週の開始日と終了日を次の8週間に取得する

    これを試してください:

    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
    

    これにより、次のような結果が得られます:

    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 
    

    または、時間コンポーネントが必要ない場合は、次のように最終的な選択を微調整できます:

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


    1. TSQL を使用して文字列から数値を抽出する方法

    2. SQLクエリヘルプ-結合条件に2つのwhere条件があります

    3. ドロップダウンリストから1つのphpから別のphpに値を渡す

    4. Azure SQLデータベースのDTUとは何か、必要な量を把握する方法