【问题标题】:Filter range from two dates in the same query Django/Python在同一查询 Django/Python 中过滤两个日期的范围
【发布时间】:2017-06-05 20:44:33
【问题描述】:

我需要从同一模型中过滤两个日期的查询的结果。我需要在同一个查询中从原始日期开始 5 天(今天加上 4 天)和从目标日期开始销售(今天加上另外 4 天)得到结果。

这是我的代码:

    startdate = datetime.now().date()
    endate = datetime.now().date() + timedelta(days=4)
    lineas_de_reporte = Reporteots.objects.filter(original_fcd_date__range=[startdate, endate], target_pdate__range=[startdate, endate])

但我没有得到我想要的结果,知道吗?

【问题讨论】:

  • 不清楚你期望什么样的结果。此外,您的模型代码将有所帮助
  • 让我编辑我的问题
  • 这里我试图更清楚,如果您需要更多数据,请告诉我
  • 首先,datetime 模块有 datetime.date.today(),这应该会有所帮助。 __range 转换为一个半开区间的 sql between 查询(即它包括下限,但不包括上限 -- startdate <= value < endate

标签: python django datetime model


【解决方案1】:

在您的代码中,不要在 __range 中使用括号。

  startdate = datetime.date().today()
  endate = datetime.date().today() + timedelta(days=4)
  lineas_de_reporte = Reporteots.objects.filter(original_fcd_date__range=(startdate, endate), target_pdate__range=(startdate, endate))

【讨论】:

  • 嗨,威尔弗里德,我昨天注意到了。但仍然没有得到完整的数据
  • 你能告诉我你数据库中的数据吗?和模型
  • 你的第二个很长 ;)
猜你喜欢
  • 2017-05-28
  • 2022-07-07
  • 1970-01-01
  • 2011-06-07
  • 1970-01-01
  • 2014-12-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多