【问题标题】:query times within time range with exclusion/specific case排除/特定情况下的时间范围内的查询时间
【发布时间】:2017-05-11 02:15:52
【问题描述】:

假设我有 Item 模型,它有一个开始和结束时间域。

class Item(models.Model):
    start = models.TimeField()
    end = models.TimeField()

我需要获取特定范围内(在某个开始和结束之间)的所有项目,

但是,

假设我的数据库中有两个项目:

第 1 项,从下午 5 点开始到晚上 8 点结束

第 2 项从晚上 8 点开始到晚上 11 点结束

我想查询以获取在下午 5 点到晚上 8 点之间(含)和下午 8 点之间的所有项目, 所以它应该只返回第 1 项,即使第 2 项从晚上 8 点开始,我不想要第 2 项,因为第 2 项的结束与开始不同第 1 项。

【问题讨论】:

标签: sql django postgresql


【解决方案1】:

在您的查询中明确检查 gtelte

qs = Item.objects.filter(start__gte=<given_start>, end__lte=<given_end>)

【讨论】:

  • 我已经解决了这个问题,但这不一定是答案,更多的是我没有准确地说明问题。感谢您的意见。
猜你喜欢
  • 2020-07-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-01
  • 2019-11-24
相关资源
最近更新 更多