-1
私は土曜日SQL - 現在の日の間のすべての日付を取得し、起動して、週
にSET DATEFIRST 6 -- Sets start day to Saturday
を開始日を設定し、週の開始と終了の間のすべてのGameDateを取得しようとしていますの終わり1週間。しかし、それは今日の日に完了する必要があります。例えば:金曜日、現在の日が木曜日であり、週の終わりがある場合、私はこれを行うにはしたくない:これは、次の5日間が示されますことことを確認します
DECLARE @StartWeek datetime Set @StartWeek = DATEADD(w, 0, DATEADD(w, DATEDIFF(w, 0,GETDATE()), -5))
DECLARE @EndWeek datetime Set @EndWeek = DATEADD(w, 0, DATEADD(w, DATEDIFF(w, 0,GETDATE()), 1))
ので。 そしてCurrentDayが木曜日にある場合、私は次の5日間を表示したくありません。毎週のGameDatesだけです。
これは私がこれまでに得たものである:
DECLARE @DateTable Table (DateofWeek Date) -- Creates table
DECLARE @DateToday Date SELECT DAY(GETDATE()) 'Current Day' -- Gets current date
DECLARE @StartWeek datetime Set @StartWeek = DATEADD(w, 0, DATEADD(w, DATEDIFF(w, 0,GETDATE()), -5)) --This is the part thats wrong
DECLARE @EndWeek datetime Set @EndWeek = DATEADD(w, 0, DATEADD(w, DATEDIFF(w, 0,GETDATE()), 1)) --This is the part thats wrong
SET DATEFIRST 6 -- Sets start day to Saturday
SELECT DATEDIFF (DAY, @DateToday, @EndWeek) AS Diffrence_End
SELECT DATEDIFF (DAY, @DateToday, @StartWeek) AS Diffrence_Start
FROM @DateTable
WHILE @DateToday >= @EndWeek AND @DateToday <= @StartWeek -- Shows all gameDates between StartWeek and Endweek
BEGIN
SELECT DATEDIFF (DAY, @DateToday, @EndWeek)
Insert Into @DateTable
SELECT *
FROM @DateTable
END;
クエリのいくつかは、おそらく間違っている、特に最後の部分。
質問がある場合は、私に尋ねることを躊躇しないでください!