2009-12-15 2 views
1

J'essaie de créer une fonction de requête qui accepte deux objets datetime.date (start_date et end_date) et renvoie tous les enregistrements avec un champ associé compris entre start_date et end_date. Cependant, je trouve rien comme une fonction between dans le manuel de web2py, donc je mettre en œuvre cette façon:comment puis-je faire 'entre' requête avec web2py.DAL?

 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) 

Faire cela est trop lent pour ma demande parce que leur peut y avoir plusieurs objets. Alors, y a-t-il une meilleure façon de l'implémenter avec web2py.DAL? Merci à l'avance;)

Répondre

1

db((db.mytable.create_date>=query_dict['create_date1'])&(db.mytable.create_date<=query_dict['create_date2'])).select()

+0

Dans mon cas, le champ interrogé est de type datetime, donc je résoudre ce problème en convertissant d'abord les deux arguments pour objet datetime et ensuite faire une requête semblable à la vôtre. Merci. – satoru

Questions connexes