获取最近30天的记录

时间:2016-10-30 01:57:34

标签: mysql sql datediff

我在该表中有一个名为“Articles”的表我有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

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

1 个答案:

答案 0 :(得分:2)

查询的MySQL版本如下所示:

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

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

查询在SQL Server中看起来会有所不同。