14

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

4

2 回答 2

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
于 2009-06-15T01:22:35.020 回答
13
SELECT * FROM simpletable
WHERE datefield < DATETIME(year, month, day, hour, minute, second)

在您的应用程序代码中计算那些年、月等。

于 2009-06-15T01:13:34.510 回答