Cómo consultar todas las entradas de los últimos 6 horas (fecha y hora) en GQL?
-
13-09-2019 - |
Pregunta
Tengo una tabla simple en Google App Engine con un campo de fecha. Quiero consultar todas las filas con el campo de fecha valorada entre ahora y hace 6 horas. ¿Cómo formo esta consulta?
Solución
SELECT * FROM simpletable
WHERE datefield < DATETIME(year, month, day, hour, minute, second)
computar los años, meses, etc., en el código de aplicación.
Otros consejos
Sé que dices GQL, pero aquí es una función de Python ayudante de uso:
import datetime
def seconds_ago(time_s):
return datetime.datetime.now() - datetime.timedelta(seconds=time_s)
Muy bien puede ser una forma más concisa para escribirlo: No soy un experto en Python y fui con lo primero que se trabajó. Echar un vistazo a la documentación de fecha y hora si le interesa. Se utiliza como esto:
my_query = MyTable.all().filter("date >", seconds_ago(6*60*60))
Estoy seguro de que puede ser traducido a GQL sin mucha molestia, pero yo prefiero la interfaz orientada a objetos, y no sé la sintaxis DATETIME necesario.
En Python la consulta se utiliza entonces como esto:
# 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