Django 选择查询时间差异

标签 django django-models django-queryset

我正在尝试在 django 中查询数据库表,其中包括以下列:

id | start_time | end_time

我可以直接在查询中获取差异,而不是获取两者的单独值吗? 一些这样的效果:

SELECT id, Diff(start_time, end_time) FROM myTable

最佳答案

这完全可以通过 Django 1.10 中的 ORM 来完成以上。使用这样的模型:

class Timer(models.Model)

    start_time = models.DateTimeField()
    end_time = models.DateTimeField()

您可以像这样用持续时间注释对象:

from django.db.models import DurationField, ExpressionWrapper, F

Timer.objects.annotate(duration=ExpressionWrapper(F('end_time') - F('start_time'),
                                                  output_field=DurationField()))

关于Django 选择查询时间差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5698486/

相关文章:

django - 将 Django 模型设为只读?

python - Django:如何从时间帖子中获得时差?

Django Querysets - 在 .extra() 之后使用 .annotate()

django - 使用 Django-AllAuth 以编程方式登录?

python - Django:我需要制定缓存方法吗?

python - 如何在html中制作一个可以触发Python后端函数的按钮?

django - 手动创建 Django QuerySet 或者手动将对象添加到 QuerySet

Django:从 G​​ET 请求生成查询集

django - 在Django queryset过滤器中使用模糊匹配

Django 统计当月创建的对象