获取最近 30 天的记录

Getting last 30 days of records

我有一个名为 'Articles' 的 table,其中 table 我有 2 列对于创建我想要创建的查询至关重要。第一列是 dateStamp 列,它是日期时间类型的列。第二列是 Counter 列,它是一个 int(255) 列。 Counter 列在技术上包含该特定字段的视图。

我正在尝试创建一个将生成最近 30 天记录的查询。然后它将根据查看次数最多的记录排序。此查询只会获取 10 条记录。我目前的查询是这样的:

SELECT *
FROM Articles
WHERE DATEDIFF(day, dateStamp, getdate()) BETWEEN 0 and 30
LIMIT 10
) TOP10
ORDER BY Counter DESC

这个查询没有显示任何记录,但我不明白我做错了什么。有什么建议吗?

查询的 MySQL 版本如下所示:

SELECT a.*
FROM Articles a
WHERE a.dateStamp >= CURDATE() - interval 30 day 
ORDER BY a.counter DESC
LIMIT 10;

您的查询产生错误。在修复查询之前,您应该查看该错误。

查询在 SQL 服务器中看起来会有所不同。