2

Given the following Contribution model:

class Contribution(models.Model):
    start_time = models.DateTimeField()
    end_time = models.DateTimeField(null=True)

is it possible, using the Django database API, to reproduce the following SQL statement?

SELECT SUM(end_time - start_time) AS total_duration FROM contribution;

I've figured out this much:

Contribution.objects.aggregate(total_duration=models.Sum( ??? ))

but I'm not sure about how to represent the end_time - start_time part. Thanks!

1 Answer 1

1

Not possible at the moment, there's a ticket for F() objects inside aggregation, but nothing promising.

The only way i see is to workaround by sum in python:

sum([x[1]-x[0] for x in Contribution.objects.values_list('start_time', 'end_time')])
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.