Используя синтаксисSQL Server: группа по неделям выходной 1 день
dateadd(week, datediff(week, 0, CURRENT_TIMESTAMP),0)
группировать данные по неделям представляется, что в последний день недели получает положенным в течение следующей недели.
В простом примере
print dateadd(week, datediff(week, 0, '27 jan 2012 00:00'),0)
print dateadd(week, datediff(week, 0, '28 jan 2012 00:00'),0)
print dateadd(week, datediff(week, 0, '29 jan 2012 00:00'),0)
print dateadd(week, datediff(week, 0, '30 jan 2012 00:00'),0)
print dateadd(week, datediff(week, 0, '31 jan 2012 00:00'),0)
Я хотел бы ожидать, чтобы вернуться
Jan 23 2012 12:00AM
Jan 23 2012 12:00AM
Jan 23 2012 12:00AM
Jan 30 2012 12:00AM
Jan 30 2012 12:00AM
или
Jan 22 2012 12:00AM
Jan 22 2012 12:00AM
Jan 29 2012 12:00AM
Jan 29 2012 12:00AM
Jan 29 2012 12:00AM
в зависимости от настроек DATEFIRST Я думаю
однако Ретур нс
Jan 23 2012 12:00AM
Jan 23 2012 12:00AM
Jan 30 2012 12:00AM
Jan 30 2012 12:00AM
Jan 30 2012 12:00AM
то есть 29 января в течение недели 30 января не 23 января или 30 января, как и ожидалось.
Мне явно не хватает чего-то, но я не могу представить, что это может быть.
Конечно, точка, хотя, что кажется несовместимым с самим собой –
я прочитал на «установить DATEFIRST» и увидел, что вы уже знал о «первом дне недели», поэтому я удалил свой комментарий. –