【问题标题】:How to Get rows that are added 'x' minutes before in sqlserver?如何获取在sql server中添加'x'分钟前的行?
【发布时间】:2014-10-22 12:49:18
【问题描述】:

我想获取之前已添加'x' minutes 的所有行。

SELECT [PromoCodeID]
      ,[CustomerID]
      ,[DiscountAmount]
      ,[AddedBy]
      ,[AddedDate]
      ,[ModifiedBy]
      ,[ModifiedDate]
 FROM [tbl_PromoCodesNewCustomer]
 Where....

例如: 从今天的日期时间前 30 分钟添加的记录

注意:记录添加日期添加在具有 DATETIME 数据类型的字段 'AddedDate' 中。

【问题讨论】:

    标签: sql-server sql-server-2008 datediff


    【解决方案1】:

    你可以用这个:

    SELECT [PromoCodeID]
          ,[CustomerID]
          ,[DiscountAmount]
          ,[AddedBy]
          ,[AddedDate] AS added
          ,[ModifiedBy]
          ,[ModifiedDate]
    FROM [tbl_PromoCodesNewCustomer]
    WHERE DATEADD(minute,x,added) > GETDATE() 
    

    DATEADD 中的“x”是您想要的分钟数。

    【讨论】:

    • 请阅读问题标题..分钟:) 你的意思是 X=AddedDate 吗?
    • 只需将 DATEADD 方法中显示“秒”的部分更改为“分钟”即可。这样 X 现在只需几分钟。
    • 我有 "AddedDate"=2014-10-22 15:15:39.510 和 x=25 但它仍然不会显示...其中 GETDATE()=2014-10-22 18:36 :39.873 :(
    • GETDATE() 返回服务器上的当前时间。因此,当您在那里运行查询时,时间是 18:36 / 6:36 PM。 “AddedDate”中的时间部分是 15:15 / 3:15 PM。因此它是在 25 分钟前添加的,因此不会显示在查询中。
    【解决方案2】:

    我建议对 FirstHorizo​​n 答案稍作改动:

    SELECT [PromoCodeID]
          ,[CustomerID]
          ,[DiscountAmount]
          ,[AddedBy]
          ,[AddedDate] AS added
          ,[ModifiedBy]
          ,[ModifiedDate]
    FROM [tbl_PromoCodesNewCustomer]
    WHERE AddedDate < DATEADD(minute * -1,x,getdate())
    

    更改可能看起来很小,但取决于所涉及的行数、索引和查询优化器评估的其他一些因素,此查询可能会执行得更好,因为无需对数据进行计算。

    here 是一篇解释原因的文章(请看第二段,'在 ON 或 WHERE 子句中使用比较函数')。

    【讨论】:

      【解决方案3】:

      编辑:

      我建议您使用 UTC 日期和时间填充 addedDate 字段,否则您可能会在不同服务器\时区或时间更改日期之间管理数据时遇到问题。

      因此,如果我们考虑这一点,where 子句将是:

      WHERE DATEDIFF(mi, addedDate,GETUTCDATE)

      【讨论】:

      • 你是对的!我想我在想别的东西。然后你必须使用 datediff 函数,将时间间隔设置为分钟,并检查它的结果是否低于 'x'...
      猜你喜欢
      • 2018-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多