Kelvin
Kelvin

Reputation: 130

How to use posgresql 'interval' in Django?

Here is my PostgreSQL statement.

select round(sum("amount") filter(where "date">=now()-interval '12 months')/12,0) as avg_12month from "amountTab"

How to use this in Django?

I have an object called 'Devc', with attribute 'date'.

I want to get the sum of the specific data within past 12 months, not past 365 days.

Upvotes: 5

Views: 680

Answers (1)

ELsssss
ELsssss

Reputation: 206

You can try this to get the data within the past 12 months.

today= datetime.now()
current_month_first_day = today.replace(day = 1)
previous_month_last_day = current_month_first_day - timedelta(days = 1)
past_12_month_first_day = previous_month_last_day - timedelta(days = 360)
past_12_month_first_day = past_12_month_first_day.replace(day = 1)

 past_12_month_avg = Devc.objects.filter(date__range=(past_12_month_first_day,current_month_first_day)).aggregate(Sum('amount'))['amount']

Upvotes: 1

Related Questions