como posso fazer 'entre' consulta com web2py.DAL?
Pergunta
Eu estou tentando fazer uma função de consulta que aceita o objeto de dois datetime.date (start_date e end_date), e devolver todos os registos com um campo relacionado que de entre start_date e end_date.
No entanto, eu encontrei nada como uma função between
no manual web2py, então eu implementá-lo desta maneira:
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)
Isso é muito lento para o meu pedido porque seu pode ser muitos objetos. Assim, há uma maneira melhor que posso implementar isso usando web2py.DAL? Agradecemos antecipadamente;)
Solução
db((db.mytable.create_date>=query_dict['create_date1'])&(db.mytable.create_date<=query_dict['create_date2'])).select()
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow