GQL에서 지난 6 시간 (DateTime)의 모든 항목을 쿼리하는 방법은 무엇입니까?
-
13-09-2019 - |
문제
날짜 필드가있는 Google App Engine에 간단한 테이블이 있습니다. 지금과 6 시간 전에 날짜 필드로 모든 행을 쿼리하고 싶습니다. 이 쿼리를 어떻게 형성합니까?
해결책
SELECT * FROM simpletable
WHERE datefield < DATETIME(year, month, day, hour, minute, second)
애플리케이션 코드에서 해당 연도, 월, & C 계산.
다른 팁
나는 당신이 GQL이라고 말하지만 여기에 내가 사용하는 Python 도우미 기능이 있습니다.
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
제휴하지 않습니다 StackOverflow