2009-06-15 14 views

cevap

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

uygulama kodunuzda bu yıl, ay, & c hesaplama.

+0

nasıl o sorguya sayımını alabilirim? – erotsppa

+1

Python App Engine'de, bir GqlQuery'yi bunun üzerinde yapın ve üzerinde .count() yöntemini çağırın; COUNT'u doğrudan Gql'nin içine sokmanın bir yolu yoktur. –

+0

Ve saymanın verimsiz olduğunu unutmayın - sayılan varlıkların sayısıyla O (n) ve App Engine'de 1000'den fazla sayılmaz. –

18

Sana GQL söylediğini biliyorum, ama burada bir piton yardımcı işlevi kullandığım var: Bir piton uzman değilim ve ilk gitti:

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

iyice yazmak için daha kısa bir yolu olabilir işe yarayan şey. Umursanız datetime dokümanlarına bir göz atın.

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

Ben çok rahatsız etmeden GQL için tercüme edilebilir emin değilim, ama nesne yönelimli bir arayüze tercih, ve eğer gerekli DATETIME sözdizimi bilmiyorum: Böyle kullanılır.

python'da sorgu sonra böyle kullanılır:

# 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 
+0

+1 Sorgu tabanlı çözüm için. –

+0

Beni çok büyük bir baş ağrısından kurtardın, teşekkürler ton. –

İlgili konular