Sql server 2008 查找上一个星期日日期算法

Sql server 2008 查找上一个星期日日期算法,sql-server-2008,tsql,date,Sql Server 2008,Tsql,Date,我在网上找到了几个例子,但我不太明白它是如何工作的。e、 g SELECT DATEADD(ww, DATEDIFF(ww,0,GETDATE()), 0) 我甚至不确定它是否符合我的要求 我需要的是,当执行查询时,它可以SELECT*fromXtable,其中xDate介于两个日期之间。上周日和下周日(本周)。我可以用什么自动找到它?请解释一下,因为我是SQL新手。我更深入地了解了这个查询 SELECT DATEADD(ww, DATEDIFF(ww,0,GETDATE()),

我在网上找到了几个例子,但我不太明白它是如何工作的。e、 g

     SELECT DATEADD(ww, DATEDIFF(ww,0,GETDATE()), 0)
我甚至不确定它是否符合我的要求


我需要的是,当执行查询时,它可以
SELECT*fromXtable,其中xDate
介于两个日期之间。上周日和下周日(本周)。我可以用什么自动找到它?请解释一下,因为我是SQL新手。

我更深入地了解了这个查询

 SELECT DATEADD(ww, DATEDIFF(ww,0,GETDATE()), 0)
并用它来检索前一个星期一。现在我只需再加上6天就可以得到一个完整的星期

我使用的解决方案是:

       Set @Monday =  DATEADD(ww, DATEDIFF(ww,0,GETDATE()), 0)
       Set @Sunday =  DATEADD(dd, 06, @Monday)

问题解决了。

我不明白为什么有人会投票支持“不是真正的问题”。OP想要知道的很清楚:如何获得本周的记录。但问题是,您是否尝试过该查询,但它返回了错误的结果?它实际上返回了一个日期,我不太清楚如何使用该查询来获得结果。如果您的表中没有未来的日期,这是最有效的方法:
SELECT*from xTable WHERE xDate>=DATEADD(ww,DATEDIFF(ww,0,GETDATE()),0)
。如果您还想限制未来的日期(超过一周):
从xTable中选择*,其中xDate>=DATEADD(ww,DATEDIFF(ww,0,GETDATE()),0)和xDate
对于一个实际上忘记提及的报告。因此,如果有人想重印两个月前的报告,恐怕将来会有一些日期。但是我试过了,如果不是为了将来的约会问题,它的效果非常好。谢谢:)