2014-03-01 34 views
1

我正在使用簡單的存儲過程從數據庫中獲取一些數據,該數據庫迄今爲止工作正常。SQL Server:將SELECT限制爲僅從最近4周/ 1個月獲取數據

有人可以告訴我如何修正這個問題,以便它總是返回4周。距當前日期1個月。 我想使用列「dateEsc」(格式化爲日期時間),只希望存儲過程獲取帶有日期標記的項目,即最大值。比當前日期早4周。

我的存儲過程:

**ALTER PROCEDURE [dbo].[CountQueue] 
AS 
BEGIN 
SET NOCOUNT ON; 
SELECT  dateEsc, 
      url, 
      EID 
FROM  QueueLog 
WHERE  logStatus = 'New' 
AND   region = 'US' 
AND   (
       flag = 'flag1' 
       OR 
       flag = 'flag2' 
      ) 
ORDER BY dateEsc desc, EID desc 
END** 

非常感謝有這個添

回答

2

如果你想正是4周任何幫助,你可以使用:

WHERE dateesc >= getdate() - 28 

如果你想要四個星期,但不擔心時間部分:

WHERE dateesc >= cast(getdate() - 28 as date) 

如果你想正好1個月:

WHERE dateesc >= dateadd(month, -1, getdate()) 

如果你1個月想要的,但並不擔心時間部分:

WHERE dateesc >= cast(dateadd(month, -1, getdate()) as date) 

你會再添加這些條件到您的where條款。

+0

這是完美的 - 非常感謝很好的解釋! – user2571510

相關問題