查询appengine上的datetime.datetime与dev服务器帮助不同!

时间:2010-05-14 08:15:40

标签: python google-app-engine

我在使用本地工作的东西时遇到了一些麻烦,并且不适用于app引擎python环境:

基本上,我想从日期和时间范围之间的epg中获取程序。 我知道我不能做两个> <所以我看到了一个建议,将日期保存为datetime.datetime列表,我做了。

[datetime.datetime(2010, 5, 10, 14, 25), datetime.datetime(2010, 5, 10, 15, 0)]

这没关系。但是当我尝试与它进行比较时:

progranon = get_object(Programs2Channel, 
                           'channel_id =', channelobj.key(),
                           'endstartdate >', programstart_minex, 
                           'endstartdate <', programstart_minex
                           )

由于某种原因,这可以在本地运行,但无法检索应用引擎上的数据。

*我正在使用谷歌应用引擎django补丁,它使用get_object来检索交易中的数据。

请帮忙。

以下是更多详情:

这是列表:

[datetime.datetime(2010, 5, 13, 10, 45), datetime.datetime(2010, 5, 13, 11, 30)]

#this is the query:

programstart = ""+year+"-"+month+"-"+day+" "+hour+":"+minute
programstart_minex = datetime.strptime(programstart, "%Y-%m-%d %H:%M")

progranon = Programs2Channel.gql('WHERE channel_id = :channelid AND endstartdate > :programstartx AND endstartdate < :programstartx',channelid = channelobj.key(),programstartx=programstart_minex).get()

3 个答案:

答案 0 :(得分:1)

这可能是问题吗?

自: http://code.google.com/appengine/docs/python/datastore/gqlreference.html

  

日期时间,日期或时间字面,   使用数值或字符串   表示,在下面   表格:DATETIME(年,月,日,   小时,分钟,秒   DATETIME('YYYY-MM-DD HH:MM:SS')

我的本​​地服务器开发人员将日期时间保存为数字YYYY-MM-DD,而应用引擎保存datetime.datetime(2010,5,10,14,25),

LOCAL日期时间列表:

2010-05-09 08:30:00,2010-05-09 09:00:00

APP发动机清单:

[datetime.datetime(2010, 5, 13, 10, 45), datetime.datetime(2010, 5, 13, 11, 30)]

也许这就是问题?

答案 1 :(得分:0)

不幸的是,这是dev_appserver和查询列表的已知问题。

但是,dev_appserver现在包含一个实验性的sqlite存根,它没有这个问题。尝试使用--use_sqlite运行它,看看是否有帮助 - 它应该!

答案 2 :(得分:0)

查询只查询在mindate之后启动的程序(只是&gt;查询)然后在内存中过滤怎么样? 如果它是一个电视指南,我们不是在谈论千种可能的实体吗?可能~100个上衣?