2017-05-04 189 views
0

我有這樣的MySQL查詢特定如何使用Django ORM從時間戳字段按日期進行分組?

SELECT SUM(trip_amount) as tp , DATE(FROM_UNIXTIME(request_time)) as timestamp 
FROM trip_master 
WHERE trip_master.date > 1493836200 
AND trip_master.date < 1493922600 
AND trip_master.id = 6 
GROUP BY timestamp 

實現這個查詢在Django,

Trip.objects.filter(id=userid,date__gt = start,date__lt = end).annotate(trip_amount = Sum('trip_amount')).extra({'timestamp':'DATE(FROM_UNIXTIME(request_time))'}) 

I定義有時間戳轉換爲日期具有日期分組。已達到近乎水平,但沒有按日期分組。 任何幫助深表感謝

回答

1

嘗試:

from django.db.models.expressions import RawSQL 

Trip.objects.filter(
    id=userid, 
    date__gt=start, 
    date__lt=end 
).annotate(
    timestamp=RawSQL('DATE(FROM_UNIXTIME(request_time))', []) 
).values(
    'timestamp' 
).annotate(
    trip_amount=Sum('trip_amount') 
) 

Group objects by dates

+0

它的工作如預期!謝謝.. – Aniket

+0

很高興它的工作,隨時=) –

相關問題