如果周日从星期日开始,我怎样才能从当前日期加上额外的12天,加上一周的开始

时间:2015-08-17 13:46:06

标签: sql sql-server sql-server-2008

从特定日期开始过去12周很容易,可以通过SQL-server中的以下命令检索。答案是2014-08-17。

select Dateadd(Week, -12, '2015-08-17')

我想要的是过去12周,但在周末结束。我不想在上周看到6天,5天,4天,3天,2天,1天。请帮忙。

1 个答案:

答案 0 :(得分:1)

简单的方法是将其分解成碎片:

首先,Find the date of the last Sunday(感谢Andriy M

然后您只需使用DateAdd(week, -12, @LastSunday)

以下是完整的脚本:

DECLARE @Date datetime = GETDATE(),
        @LastSunday datetime,
        @TargetDate datetime


SET @LastSunday = DATEADD(day,
                          -1 - (DATEPART(dw, @Date) + @@DATEFIRST - 2) % 7,
                          @Date
                          )

SET @TargetDate = DATEADD(week, -12, @LastSunday)

Play with it your self in this sql fiddle..