我试图按周对记录进行分组,将聚合日期存储为每周的第一天。然而,我用来四舍五入日期的标准技术似乎并不适用于几周(尽管它适用于几天、几个月、几年、几个季度和我所应用的任何其他时间框架)。
以下是 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);
但我不得不破例,这让我有点不安。此外,如果这是一个重复的问题,我道歉。我发现了一些相关的问题,但是没有一个是针对这个方面的。