使用 Django ORM 检索最近的行

Using Django ORM to retrieve recent rows

在 SQL 中,如果我想查询 table 最近 10 分钟的数据(不管时区等),我会简单地做(使用 postgresql 的说法):

select * from table where creation_time > now() - interval'10 mins';

有没有一种等效的方法可以使用 Django ORM 执行类似的操作,而不管为应用程序设置的时区设置如何?在这里得到一个说明性的例子会很棒。

试试这个:-

10分钟内的数据:-

from datetime import datetime, timedelta

time_threshold = datetime.now() - timedelta(minutes=10)
results = Table.objects.filter(createdOn__lte=time_threshold)

最后 10 行基于 createdOn 值:-

recentData = Table.objects.all().order_by('-createdOn')[:10]

最后 10 行,如果您没有要过滤的 createdOn 列:-

recentData = Table.objects.all().order_by('-id')[:10]