2009-06-15 2 views

답변

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

해당 연도, 월, &c를 응용 프로그램 코드에서 계산하십시오.

+0

방법은 해당 쿼리의 수를받을 수 있나요? – erotsppa

+1

Python App Engine에서 GqlQuery를 만들고 그 위에 .count() 메소드를 호출한다. COUNT를 Gql 자체에 복사 할 방법이 없습니다. –

+0

계산은 비효율적입니다. 이는 계산 된 엔티티 수와 함께 O (n)이며 App Engine에서는 1000을 넘을 수 없습니다. –

18

나는 당신이 GQL 말을 알고 있지만, 여기에 파이썬 도우미 기능은 내가 사용이다 : 나는 파이썬 전문가 아니에요 첫 번째로 갔다 :

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

잘 작성하는 더 간결한 방법이있을 수 있습니다 효과가있는 것. 당신이 신경 쓰면 datetime 문서를보십시오.

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

내가 많이 귀찮게하지 않고 GQL로 번역 할 수있는 확신 해요,하지만 난 객체 지향 인터페이스를 선호하고, 내가 필요한 DATETIME 구문을 모르는 : 다음과 같이 사용됩니다.

는 파이썬에서 쿼리는 다음과 같이 사용됩니다

# 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 쿼리 기반 솔루션. –

+0

큰 두통이 나에게 저장되었습니다. 덕분에 1 톤이되었습니다. –

관련 문제