2012-06-19 54 views
6

我在網上找到了一些例子,但我不太明白它是如何工作的。例如查找上一個星期日期算法

 SELECT DATEADD(ww, DATEDIFF(ww,0,GETDATE()), 0) 

我甚至不確定它做了我想要的。

我需要的是,查詢執行時,它可以在兩個日期之間SELECT * from xTable WHERE xDate。上週日和下週日(本週)。我可以用什麼來自動找到它?並請解釋,因爲我是SQL新手。

+4

我不明白爲什麼有人可以投票結束爲_「不是真正的問題」_。 OP想知道的是:如何獲得本週的記錄。但問題是,你是否嘗試過查詢並返回了錯誤的結果? –

+0

它實際上返回一個日期,我不能完全找到如何使用此查詢來獲得我的結果。 – phadaphunk

回答

4

我在試圖理解這個查詢

SELECT DATEADD(ww, DATEDIFF(ww,0,GETDATE()), 0) 

更深層次看,並用它中檢索以前的星期一。現在我可以簡單地使用DATEADD六天以獲得整整一週的時間。

我使用的溶液:

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

問題解決了。

+0

如果你的表中沒有將來的日期,這是最有效的方法:'SELECT * from xTable WHERE xDate> = DATEADD(ww,DATEDIFF(ww,0,GETDATE()),0)'。如果您還想限制將來的日期(超過一週):'SELECT * from xTable WHERE xDate> = DATEADD(ww,DATEDIFF(ww,0,GETDATE()),0)AND xDate

+0

它的報告實際上忘了提及。所以如果有人想在兩個月前重印一份報告,恐怕會有一些未來的日子。但是我嘗試了它,如果它不適用於將來的日期問題,它可以很好地工作。謝謝:) – phadaphunk

相關問題