目前我的查詢是將數據從當前日期提取到過去7天。我想從上週獲取數據。平均值如果今天是2013-06-20,那麼數據應該從上週(2013-06-10至2013-06-16)。我搜索了很多論壇的確切答案,但我仍然無法找到。如何從sql中獲取過去一週的數據
這裏是我的查詢
SELECT CONVERT(varchar(25),PostDate,107) AS duration, count(*) AS posts
FROM MDBDetails WHERE
DateAdd(dd, 0, DateDiff(dd, 0, PostDate)) <= DateAdd(dd, 0, DateDiff(dd, 0, GETDATE())) AND
DateAdd(dd, 0, DateDiff(dd, 0, PostDate)) >= DateAdd(dd, 0, DateDiff(dd, 0, GETDATE())) - 7
GROUP BY CONVERT(varchar(25),PostDate,107)
ORDER BY duration
你需要告訴我們哪DB這是。在sql中沒有真正的標準日期/時間函數,所以每個DB都實現它們自己的。 –
是否意味着您需要在7天之前獲取數據。 –
@MarcB:實際上有一個日期時間處理的標準。使用'interval'數據類型,例如:'where postdate <= current_date - interval'7'day'將是ANSI SQL,實際上可以被各種DBMS理解。 –