我在Django模型中使用postgres DateTimeRangeField。它是现有数据库,所有现有行都具有较低范围和较高范围。现在我需要查询较低范围的日期是特定日期的所有行,例如rangefield.lower.date == 1。
请不要告诉我为开始日期和结束日期使用单独的字段。这个系统正在生产中,我需要查询它以过滤分析。
class Model(models.Model):
rangefield = DateTimeRangeField(db_index=True)
....
我需要查询类似Model.objects.filter(rangefield__lower__date=1)
答案 0 :(得分:1)
您可以使用startswith
查询解释here
Model.objects.filter(rangefield__startswith__day=1)
如果以上不起作用,请尝试:
Model.objects.filter(rangefield__startswith__date__day=1)