SQL DATEADD(weekday, 1, date) 好像不行?

SQL DATEADD(weekday, 1, date) does not seem to work?

这是我的查询:

SELECT  ID AS 'securityid'
      , date
      , DATEADD(DW, 1, adate) AS 'lagged_date_v2'
      , DATEADD(DAY, 1, adate) AS 'lagged_date_v1'
      , aclose AS 'previous_close'
FROM    mytable
WHERE   adate BETWEEN '20170101 09:00' AND '20170630 18:00' AND
        ID = 100056;

以上代码的输出如下:

我将结果与 DATEADD 按天和按工作日进行比较,return 结果相同。

adate只是典型的日期,我们可以看出Jan 28, 2017是星期六。但是,在这一行上,lagged_date_v1lagged_date_v2 return Jan 28。如果我按工作日正确使用 DATEADD,我应该看到 Jan 30 而不是 Jan 28,对吗?

我的sql服务器版本是2008。

If I use DATEADD by weekday correctly, I should see Jan 30 instead Jan 28, right?

错了。在 SQL 服务器中,weekday 并不意味着不是周末的日子。这表示根据当前 datefirst 设置,一周中的哪一天 (1-7) 是相关日期。