2017-10-09 87 views
1

我在Django模型中使用postgres DateTimeRangeField。它是现有的数据库,所有现有的行都具有较低的范围和较高的范围。现在我需要查询所有的行,其中较低范围的日期是特定日期,例如rangefield.lower.date == 1。查询日期时间.now()。日期从Django DateTimeRangeField

请不要告诉我在开始日期和结束日期使用不同的字段。该系统正在生产中,我需要查询该过滤器以进行分析。

class Model(models.Model): 
    rangefield = DateTimeRangeField(db_index=True) 
    .... 

我需要查询类似Model.objects.filter(rangefield__lower__date=1)

+0

添加'模型' –

+0

已添加。 TIA @AstikAnand –

+0

试试这个“小于或等于”。 https://docs.djangoproject.com/en/1.11/ref/models/querysets/#lte – eddwinpaz

回答

1

您可以使用startswith查找解释here

Model.objects.filter(rangefield__startswith__day=1) 

如果上述方法无效尝试:

Model.objects.filter(rangefield__startswith__date__day=1) 
+0

以上两种作品 –

+0

@AswinKumarKP,谢谢你让我知道。感觉有幸帮助你。 –