如何根据当前时间 select 仅显示最近的 6 个条目?

How to select only the most recent 6 entries based on current time?

我拥有的是达拉斯汽车站的数据库。我的目标是 select 只有最近到达的 6 辆公共汽车。我现在拥有的是 select 从午夜到现在的所有公交车到达时间。我尝试了 select Top 6 之类的东西,然后进行比较,但失败了。

此代码适用于所有时间 00:00:00 - 现在,但我想要现在之前发生的最近 6 个。

SELECT *
FROM dbo.BusSchedule
WHERE DATEPART(HH,BaseArrive) < DATEPART(HH,CONVERT(time, getdate()))

谢谢!

SELECT    *
FROM      dbo.BusSchedule
WHERE     DATEPART(HH,BaseArrive) < DATEPART(HH,CONVERT(time, getdate()))
ORDER BY  BaseArrive DESC OFFSET 0 ROWS FETCH NEXT 6 ROWS ONLY;

基本上获取所有行,按日期倒序排列,以获取最新的行,然后获取其中的前 6 行。

SELECT top 6 *
FROM dbo.BusSchedule
WHERE DATEPART(HH,BaseArrive) < DATEPART(HH,CONVERT(time, getdate()))
Order By BaseArrive desc

编辑:我看到您提到使用前 6 名对您不起作用。这是我在这类问题中倾向于采用的解决方案,但也许如果您详细解释它的错误之处,我可以帮助您找到答案。