基于时间戳的App Engine选择
我好像无法根据时间戳来选择某些东西。这个行为有点奇怪,< 和 = 这些符号似乎并不是我想的那样。
""" A site message """ class Message( db.Model ) : # from/to/ a few other fields subject = db.StringProperty() body = db.Text() # this is the field i'm trying to use sent = db.DateTimeProperty( auto_now_add=True )
当我写 GQL 查询时,比如
select * from Message where sent = '2009-09-14 01:00:02.648000'
(在数据存储中确实有一个时间戳完全相同的消息)
结果却给我什么都没有。
如果我尝试
select * from Message where sent < '2009-09-14 01:00:02.648000'
结果却给我所有的消息。当我尝试使用 > 符号时,结果又什么都没有。
这是怎么回事,我该如何根据时间戳来选择呢?
1 个回答
5
千万不要用字符串来代替日期时间!这样做根本行不通...
可以看看这个文档:DateTimeProperty
对应的是datetime.datetime这个值。你需要import datetime
,把你喜欢的字符串转换成datetime.datetime
实例(比如可以用strptime
方法来转换),然后用这些实例来进行比较——当然,最后你会过得很开心!