【发布时间】:2017-11-10 15:14:49
【问题描述】:
我正在尝试查询某个日期范围内的所有实体。我的理解是,您可以在单个日期时间属性上使用两个不等式过滤器,但这对我不起作用。
我正在尝试查询日期为未来 2-3 天的所有实体。我创建了 5 个实体,1 个在日期范围之前,3 个在,1 个在日期范围之后。创建 5 个实体后,我运行以下命令来测试查询:
# Define the date range
today = datetime.combine(datetime.utcnow(), time(0))
d2 = today + timedelta(days=2)
d3 = today + timedelta(days=3)
print "Start:", d2
print "End:", d3
print "All"
entities = models.Entity.query()
for e in entities:
print e.my_date
print "Range"
entities = models.Entity.query(Entity.my_date >= d2 and Entity.my_date <= d3)
for e in entities:
print e.my_date
print "After"
entities = models.Entity.query(Entity.my_date >= d2)
for e in entities:
print e.my_date
print "Before"
entities = models.Entity.query(Entity.my_date <= d3)
for e in entities:
print e.my_date
这是上面的结果:
Start: 2017-11-12 00:00:00
End: 2017-11-13 00:00:00
All
2017-11-11 23:00:00
2017-11-12 01:00:00
2017-11-12 06:00:00
2017-11-12 12:00:00
2017-11-13 01:00:00
Range
2017-11-11 23:00:00 # Why is this selected by the query?
2017-11-12 01:00:00
2017-11-12 06:00:00
2017-11-12 12:00:00
After
2017-11-12 01:00:00
2017-11-12 06:00:00
2017-11-12 12:00:00
2017-11-13 01:00:00
Before
2017-11-11 23:00:00
2017-11-12 01:00:00
2017-11-12 06:00:00
2017-11-12 12:00:00
我无法弄清楚为什么日期范围查询包含日期范围之外的实体。
【问题讨论】:
标签: google-app-engine app-engine-ndb