【问题标题】:SQL Server: limit SELECT to only fetch data from last 4 weeks / 1 monthSQL Server:将 SELECT 限制为仅获取过去 4 周/1 个月的数据
【发布时间】:2014-03-01 12:21:29
【问题描述】:

我正在使用一个简单的存储过程从数据库中获取一些数据,目前它工作正常。

这里有人可以告诉我我必须如何修改它,以便它总是可以追溯到 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**

非常感谢您对蒂姆的任何帮助

【问题讨论】:

    标签: sql sql-server datetime stored-procedures


    【解决方案1】:

    如果你想要正好四个星期,你会使用:

    WHERE dateesc >= getdate() - 28
    

    如果您想要四个星期,但不担心时间部分:

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

    如果你想要正好一个月:

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

    如果你想要一个月,但不担心时间部分:

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

    然后您将这些条件添加到您的 where 子句中。

    【讨论】:

      猜你喜欢
      • 2022-07-07
      • 1970-01-01
      • 1970-01-01
      • 2010-09-07
      • 2020-05-30
      • 1970-01-01
      • 1970-01-01
      • 2012-12-28
      • 2019-07-29
      相关资源
      最近更新 更多