Google app engine 如何在GQL中查询过去6小时(datetime)的所有条目?

Google app engine 如何在GQL中查询过去6小时(datetime)的所有条目?,google-app-engine,gql,gqlquery,Google App Engine,Gql,Gqlquery,我在Google App Engine中有一个简单的表,其中有一个日期字段。我想查询date字段值介于现在和6小时前之间的所有行。如何形成此查询?从simpletable中选择* SELECT * FROM simpletable WHERE datefield < DATETIME(year, month, day, hour, minute, second) 其中datefield

我在Google App Engine中有一个简单的表,其中有一个日期字段。我想查询date字段值介于现在和6小时前之间的所有行。如何形成此查询?

从simpletable中选择*
SELECT * FROM simpletable
WHERE datefield < DATETIME(year, month, day, hour, minute, second)
其中datefield

计算应用程序代码中的年、月和年。

我知道你说的是GQL,但我使用了一个python助手函数:

import datetime
def seconds_ago(time_s):
    return datetime.datetime.now() - datetime.timedelta(seconds=time_s)
很可能有一种更简洁的方式来编写它:我不是python专家,我选择了第一件有效的东西。如果你介意的话,看看datetime文档。它是这样使用的:

my_query = MyTable.all().filter("date >", seconds_ago(6*60*60))
# get a count
my_query.count()
# get up to 1000 records
my_query.fetch(1000)
# iterate over up to 1000 records
for result in my_query:
    # do something with result
我确信这可以翻译成GQL而不需要太多麻烦,但我更喜欢面向对象的接口,而且我不知道必要的DATETIME语法

在python中,查询的使用方式如下:

my_query = MyTable.all().filter("date >", seconds_ago(6*60*60))
# get a count
my_query.count()
# get up to 1000 records
my_query.fetch(1000)
# iterate over up to 1000 records
for result in my_query:
    # do something with result

如何获取该查询的计数?在Python应用程序引擎中,使用该查询生成一个GqlQuery,并对其调用.count()方法;没有办法将计数直接写入Gql本身。请注意,计数效率很低-计数的实体数为O(n),而在应用程序引擎中,计数不能超过1000。请编辑标题,使其更适合谷歌。。