Я пытаюсь сгруппировать записи по неделям, сохраняя агрегированную дату в качестве первого дня недели.Тем не менее, стандартная техника, которую я использую для округления дат, кажется, не работает должным образом с неделями (хотя она применяется для дней, месяцев, лет, кварталов и любых других временных периодов, к которым я ее применял).SQL:
select "start_of_week" = dateadd(week, datediff(week, 0, getdate()), 0);
Возвращает 2011-08-22 00:00:00.000
, то есть понедельник, а не воскресенье.Выбор @@datefirst
возвращает 7
, который является кодом для воскресенья, поэтому, насколько я знаю, сервер настроен правильно.
Я могу достаточно легко обойти это, изменив приведенный выше код на:
select "start_of_week" = dateadd(week, datediff(week, 0, getdate()), -1);
Но тот факт, что я должен сделать такое исключение, делает меня немного неловким.Кроме того, извиняюсь, если это дублирующий вопрос.Я нашел несколько связанных вопросов, но ни один из них не касался конкретно этого аспекта.