come posso fare 'tra' query con web2py.DAL?
Domanda
Sto cercando di fare una funzione di query che accetta due oggetti datetime.date (data_iniziale e data finale), e restituire tutti i record con un campo correlato che è tra data_iniziale e data finale.
Tuttavia, ho trovato niente di meglio di una funzione between
nel manuale web2py, quindi a implementare in questo modo:
for o in objects:
# notice that create_time is a datetime field
create_date = dt.datetime.strptime(o['create_time'],
"%Y-%m-%d %H:%M:%S").strftime("%Y-%m-%d")
if query_dict['create_date_1'] <= create_date <= query_dict['create_date_2']:
result.append(l)
Fare questo è troppo lento per la mia domanda perché il loro possono essere molti oggetti. Quindi, c'è un modo migliore che posso implementare questo utilizzando web2py.DAL? Grazie in anticipo;)
Soluzione
db((db.mytable.create_date>=query_dict['create_date1'])&(db.mytable.create_date<=query_dict['create_date2'])).select()
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow