【发布时间】:2015-03-25 00:12:00
【问题描述】:
我有一个 SQL 风格的数据库,带有一个用于记录事件的简单表。每个事件都有一个时间戳,并且仅从单个线程更新(因此我们可以相信表中的条目将始终按时间顺序排列)。该表可能有许多个月的数据。如果我想查询最近的条目,比如最后一天的值,那么最好的方法是什么?
我可以这样做:
SELECT * FROM events WHERE timestamp > [some time];
但这将不得不检查数据库中的每个事件。我真正想用伪代码做的是:
get the rows at the end of the table back as far as where timestamp is greater than [some time]
这可能吗?还是必要的?
【问题讨论】:
-
添加一个
Order By timestamp desc以获取您的事件的时间戳,从最近到最远的过去顺序。如果您的数据按特定顺序构建,则应始终使用 Order By 子句,以确保以有意义的方式排列结果。否则,您的结果将按照数据库在该时间和空间点上给您的任何顺序出现。