在 SQL Server 中检索过去 7 天的数据
从 SQL 中高效获取过去 7 天的数据的任务服务器表出现在许多数据管理场景中。其中一种情况涉及使用 Pentaho 将数据从名为“A”的 SQL Server 表加载到 MySQL 表中。为了确保准确性和相关性,有必要对数据进行过滤,以便仅检索最近 7 天的数据。
在给定的上下文中,SQL Server 表“A”中的“CreatedDate”列被定义为“日期时间”数据类型。然而,在MySQL表中,相应的列“created_on”被定义为“timestamp”数据类型。需要注意的是,这些数据类型在表示形式和精度方面略有差异。
用户提供的初始查询尝试使用以下语句选择所需的数据:
SELECT id, NewsHeadline as news_headline, NewsText as news_text, state, CreatedDate as created_on FROM News WHERE CreatedDate BETWEEN GETDATE()-7 AND GETDATE() order by createddate DESC
但是,此查询仅检索到 5 天的数据。为了纠正此问题并准确捕获过去 7 天的数据,我们需要对查询进行轻微调整。
这是一个修改后的查询,它将正确选择所需的数据:
SELECT id, NewsHeadline as news_headline, NewsText as news_text, state CreatedDate as created_on FROM News WHERE CreatedDate >= DATEADD(day,-7, GETDATE())
在此修改后的查询中,我们使用 DATEADD 函数从当前日期减去 7 天,并获取表示过去 7 天期间开始的日期值。通过将其指定为日期范围的下限,我们确保查询检索过去 7 天内的所有数据。
以上是如何使用 DATEADD 函数检索 SQL Server 中过去 7 天的数据?的详细内容。更多信息请关注PHP中文网其他相关文章!