检索数据我有一个表中谷歌数据存储保存在ň列ñ价值观,其中之一是timestamp
。GQL查询(蟒蛇)使用时间戳
的timestamp
属性被定义像这样,表类中(爪哇):
@Persistent
private Date timestamp;
该表是这样的:
id | value | timestamp
----------------------------------------------------------
1 | ABC | 2014-02-02 21:07:40.822000
2 | CDE | 2014-02-02 22:07:40.000000
3 | EFG |
4 | GHI | 2014-02-02 21:07:40.822000
5 | IJK |
6 | KLM | 2014-01-02 21:07:40.822000
的timestamp
列被添加后的表,所以有些行没有相应的值timestamp
。
我在尝试,使用Python Google App Engine来构建一个api,它返回具有某个值的时间戳>=
的行的总数。
例如:
-- This is just an example
SELECT * FROM myTable WHERE timestamp >= '2014-02-02 21:07:40.822000'
我做了这个类,在python:
import sys
...
import webapp2
from google.appengine.ext import db
class myTable(db.Model):
value = db.StringProperty()
timestamp = datetime.datetime
class countHandler(webapp2.RequestHandler):
def get(self, tablename, timestamp):
table = db.GqlQuery("SELECT __key__ FROM " + tablename + " WHERE timestamp >= :1", timestamp)
recordsCount = 0
for p in table:
recordsCount += 1
self.response.out.write("Records count for table " + tablename + ": " + str(recordsCount))
app = webapp2.WSGIApplication([
('/count/(.*)/(.*)', countHandler)
], debug=True)
我已经成功地部署了它,我可以调用它,但由于某种原因我不明白它总是说
Records count for table myTable: 0
我与时间戳数据类型挣扎。我认为这个问题是有什么想法?应该声明哪种类型?
谢谢!
你肯定时间戳不是一个字符串?据我所知,它需要是日期时间。 –
@JimmyKane我在Java类中将它定义为'Date',所以它应该是date ..我会给它一个尝试,python方面,'timestamp = db.StringProperty()'如果这是你意思是 – BeNdErR
我认为你需要有日期时间格式的时间戳。只需将其转换为datetime并将该对象用于查询即可。通知它是否有效。我有一些时间来使用它在我的查询和atm我没有方便测试。 –