我在網上找到了一些例子,但我不太明白它是如何工作的。例如查找上一個星期日期算法
SELECT DATEADD(ww, DATEDIFF(ww,0,GETDATE()), 0)
我甚至不確定它做了我想要的。
我需要的是,查詢執行時,它可以在兩個日期之間SELECT * from xTable WHERE xDate
。上週日和下週日(本週)。我可以用什麼來自動找到它?並請解釋,因爲我是SQL新手。
我在網上找到了一些例子,但我不太明白它是如何工作的。例如查找上一個星期日期算法
SELECT DATEADD(ww, DATEDIFF(ww,0,GETDATE()), 0)
我甚至不確定它做了我想要的。
我需要的是,查詢執行時,它可以在兩個日期之間SELECT * from xTable WHERE xDate
。上週日和下週日(本週)。我可以用什麼來自動找到它?並請解釋,因爲我是SQL新手。
我在試圖理解這個查詢
SELECT DATEADD(ww, DATEDIFF(ww,0,GETDATE()), 0)
更深層次看,並用它中檢索以前的星期一。現在我可以簡單地使用DATEADD
六天以獲得整整一週的時間。
我使用的溶液:
Set @Monday = DATEADD(ww, DATEDIFF(ww,0,GETDATE()), 0)
Set @Sunday = DATEADD(dd, 06, @Monday)
問題解決了。
如果你的表中沒有將來的日期,這是最有效的方法:'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
它的報告實際上忘了提及。所以如果有人想在兩個月前重印一份報告,恐怕會有一些未來的日子。但是我嘗試了它,如果它不適用於將來的日期問題,它可以很好地工作。謝謝:) – phadaphunk
我不明白爲什麼有人可以投票結束爲_「不是真正的問題」_。 OP想知道的是:如何獲得本週的記錄。但問題是,你是否嘗試過查詢並返回了錯誤的結果? –
它實際上返回一個日期,我不能完全找到如何使用此查詢來獲得我的結果。 – phadaphunk