Установка начала недели на понедельник - datefirst не имеет никакого эффекта - PullRequest
0 голосов
/ 23 марта 2012

Рассмотрим следующий скрипт:

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 не имеет никакого эффекта.

Заранее спасибо.

1 Ответ

3 голосов
/ 23 марта 2012

См. Это: http://social.msdn.microsoft.com/Forums/en-US/transactsql/thread/8cc3493a-7ae5-4759-ab2a-e7683165320b/

Надеюсь, это поможет.

Как факт - DATEDIFF не заботится о DATEFIRST

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...