如何在GQL中查询过去6小时(日期时间)内的所有条目?

时间:2009-06-15 01:09:10

标签: google-app-engine gql gqlquery

我在Google App Engine中有一个带有日期字段的简单表格。我想查询所有行,其中包含从现在到6小时之前的日期字段。如何形成此查询?

2 个答案:

答案 0 :(得分:18)

我知道你说的是GQL,但这是我使用的python帮助函数:

import datetime
def seconds_ago(time_s):
    return datetime.datetime.now() - datetime.timedelta(seconds=time_s)

可能有一种更简洁的方式来编写它:我不是python专家,并且第一件事就是有效的。如果您关心,请查看日期时间文档。它的使用方式如下:

my_query = MyTable.all().filter("date >", seconds_ago(6*60*60))

我确信可以毫不费力地将其翻译成GQL,但我更喜欢面向对象的界面,而且我不知道必要的DATETIME语法。

在python中,然后使用如下查询:

# 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

答案 1 :(得分:13)

SELECT * FROM simpletable
WHERE datefield < DATETIME(year, month, day, hour, minute, second)

在您的应用程序代码中计算年,月和日。