【问题标题】:How to make a query that computes the difference of two timefield objects/attributes in Django?如何进行查询以计算 Django 中两个时间场对象/属性的差异?
【发布时间】:2017-01-05 20:45:22
【问题描述】:

假设我有一个具有四个属性的模型:

  • 姓名,
  • 时间,
  • 超时
  • 日期

time intime outtimefield 对象。现在,我想编写一个 django 查询,告诉我在给定范围内的大部分时间里,谁在办公室有空。

我不确定如何即时计算时间差(超时 - 超时)。我是否需要添加另一个属性,例如持续时间?我希望避免这种情况。

【问题讨论】:

标签: sql django database


【解决方案1】:

我认为使用香草 Django ORM 是不可能的。

我想到了两个解决方案:

  1. 在 RAM 中获取结果并进行计算。

  2. 添加一个新字段以将duration 处理到您的模型中。您可以先执行更新查询来计算数据库中所有行的持续时间。

    Class.objects.update(duration=F('time_out')-F('time_in'))

然后您可以order_byduration 并将第一个条目作为您的最大持续时间。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-26
    • 2019-06-27
    • 2017-04-02
    • 2017-09-04
    相关资源
    最近更新 更多