2009-12-15 3 views
1

Я пытаюсь сделать функцию запроса, которая принимает два объекта datetime.date (start_date и end_date) и возвращает все записи со связанным полем между start_date и end_date. Однако, я не нашел ничего подобного between функции в руководстве web2py, поэтому я реализую это так:Как я могу сделать запрос «между» с помощью 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) 

Делая это слишком медленно для моего приложения, поскольку их может быть много объектов. Итак, есть ли лучший способ реализовать это с помощью web2py.DAL? Заранее спасибо;)

ответ

1

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

+0

В моем случае, запрошенное поле типа DateTime, так что я решить эту проблему, необходимо сначала преобразовать два аргумента в объект даты и времени, а затем сделать запрос похож на ваш. Спасибо. – satoru