我需要对一组具有日期字段的对象进行 gql 查询。我对 python 和 GAE 都很陌生,所以我对此有点无知。我正在查看文档,但找不到我想要的内容。基本上我做了以下类方法
Event.getEventsForMonth(cls, month,year):
所以我试图查询我的对象,其中日期字段的月份和年份落在指定范围内。我尝试创建一个日期对象并将其用于比较,但到目前为止我还没有感到高兴。
dateto = str(year)+str(month+1)+"01"
datefrom = str(year)+str(month)+"01"
if month + 1 == 13:
dateto = str(year+1)+"01"+"01"
query = GqlQuery("SELECT * FROM Event WHERE date >= :datefrom AND date <= :dateto", dateto=dateto, datefrom=datefrom)
return query
这个方法对我来说看起来很糟糕,因为我不太了解可以从 Python 中与 GQL 查询内联使用的核心方法。
感谢任何帮助
干杯,
安德鲁
最佳答案
首先,将日期存储为数据存储区中的 DateProperty 或 DateTimeProperty 实例。
然后,您可以执行如下查询:
def getEventsForMonth(self, month, year):
start_date = datetime.datetime(year, month, 1)
if month == 12:
end_date = datetime.datetime(year + 1, 1, 1)
else:
end_date = datetime.datetime(year, month + 1, 1)
return Events.all().filter('date >=', start_date).filter('date <=', end_date).fetch(1000)
关于python - 如何使用特定月份和年份查询具有日期字段的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2117056/