2017-02-19 81 views
1

在SQL中,如果我想從最近10分鐘(不考慮時區等)的數據查詢表,我簡單地做(使用postgresql說法):使用Django ORM檢索最近的行

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

有沒有一種等效的方式來使用Django ORM做這樣的事情,忽略了爲應用程序設置了哪些時區設置?在這裏獲得一個說明性的例子會很棒。在10分鐘內

數據: - - :

回答

1

試試這個

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 column to filter: -

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

說明:應該是'datetime.now()'還是'datetime.utcnow()'。在我特殊的情況下,有沒有'datetime.utcnow()'有意義? –

+0

不是不是因爲'datetime.utcnow()'OS提供了值。 –