Рассмотрим следующий скрипт:
SET LANGUAGE 'German'
GO
SET DATEFIRST 1
GO
DECLARE @FullDate DATETIME
DECLARE @DayofWeek tinyint
DECLARE @relativeWeek int
SELECT @FullDate = '5/1/2008'
WHILE (@FullDate <= '7/1/2008')
BEGIN
SELECT DATEPART (DW , @FullDate) as day_of_week, DATEDIFF(WEEK, CURRENT_TIMESTAMP, @FullDate) as relative_week
SELECT @FullDate = DATEADD(DAY, 1, @Fulldate)
END
Результат на данный момент
day_of_week relative_week
----------------------------
6 -220
7 -219
1 -219
Теперь, как мне получить такой результат:
day_of_week relative_week
----------------------------
6 -220
7 -220 <-- here's the difference :)
1 -219
То есть начало недели в понедельник / день 1 недели. Как видите, установка переменной datefirst в 1 не имеет никакого эффекта.
Заранее спасибо.