我试图在特定类型的日期范围内搜索某些值,但查询未返回数据库中存在的日期的内容。
这是python代码的摘录:
deltaDays = timedelta(days= 20)
endDate = datetime.date.today()
startDate = endDate - deltaDays
result = db.GqlQuery(
"SELECT * FROM myData WHERE mytype = :1 AND pubdate >= :2 and pubdate <= :3", type, startDate, endDate
)
class myData(db.Model):
mytype = db.StringProperty(required=True)
value = db.FloatProperty(required=True)
pubdate = db.DateTimeProperty(required=True)
GQL 返回数据,但我期望的一些行丢失了:
2009-03-18 00:00:00
(missing date in results: 2009-03-20 data exists in database)
2009-03-23 00:00:00
2009-03-24 00:00:00
2009-03-25 00:00:00
2009-03-26 00:00:00
(missing date in results: 2009-03-27 data exists in database)
2009-03-30 00:00:00
(missing date in results: 2009-03-31. data exists in database)
2009-04-01 00:00:00
2009-04-02 00:00:00
2009-04-03 00:00:00
2009-04-06 00:00:00
我通过 de bulkload 脚本上传了数据。我只能想到索引被损坏或类似的东西。这个相同的查询曾经适用于我拥有的另一个表。但是我不得不用其他来源的新内容替换它,而这个新内容并没有以同样的方式响应查询。如果这有什么不同的话,该表大约有 700.000 行。
我做了更多的研究,它似乎是 appEngine DataStore 中的一个错误。有关该错误的更多信息,请查看此链接: http ://code.google.com/p/googleappengine/issues/detail?id=901
我试过删除索引并重新创建它,但没有成功。
谢谢