使用Django ORM检索最近的行

时间:2017-02-19 11:27:33

标签: django django-orm

在SQL中,如果我想查询表中最近10分钟的数据(无论时区等),我只是(使用postgresql说法):

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

使用Django ORM有没有相同的方法来做这样的事情,忽略了为应用设置的时区设置?很高兴在这里得到一个说明性的例子。

1 个答案:

答案 0 :(得分:1)

试试这个: -

10分钟内的数据: -

from datetime import datetime, timedelta

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

基于createdOn值的前10行: -

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

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

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