【问题标题】:SQL select statement over a relative time range?相对时间范围内的 SQL 选择语句?
【发布时间】:2020-06-04 20:59:54
【问题描述】:

我的 SQL Server 表有一个触发器,它将当前日期和时间输入到 DATETIME 列(我们称之为 last_updated)。我想运行一个查询,从过去一小时内选择表中具有last_updated 值的所有记录。如何在查询中指定仅选择过去一小时内更新的记录的相对时间范围?

【问题讨论】:

  • 向我们展示您的尝试... SQL Server 具有一系列日期时间函数,请查看它们。提示:dateadd.
  • 这不是像 Select * from your table where last_updated >= dateadd(hour,-1,getdate()) 一样简单,还是我错过了什么?
  • 为了将来的参考,请阅读how to ask 并考虑到这里的期望是你做一些研究,尝试一下,只有在遇到困难时才发布问题。
  • @DaleK 明白,我自己做了一些研究,但不知何故错过了其他回复中建议的 DATEADD 函数。以后发帖之前我会更加勤奋一点。

标签: sql-server tsql


【解决方案1】:

我认为您正在寻找类似的东西

SELECT <Columns>
FROM <Table Name>
WHERE last_updated <= GETDATE()
      AND
      last_updated >= DATEADD(Hour, -1, GETDATE());

【讨论】:

  • 酷,时间是不必要的。虽然严格正确,但实际上并不需要 &lt;= GETDATE() 子句,除非触发器可以在未来发布更新时间。
  • 谢谢!太棒了。我想我自己的研究还不够彻底,无法找到 DATEADD 函数。
猜你喜欢
  • 2012-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多