我有兩個表'日期'列。一個持有(姓名,日期),另一個持有(日期,p1,p2)。給定一個名字,我想用表1中的日期從表2中查詢p1和p2;如果表1中的日期在表2中的日期之內,則應該發生匹配。使用SQLAlchemy在兩秒鐘內過濾對象
如何使用SQLAlchemy完成此操作?
我試過(不成功)使用between
運營商,並與像一個條款:
td = datetime.timedelta(seconds=2)
q = session.query(table1, table2).filter(table1.name=='my_name').\
filter(between(table1.date, table2.date - td, table2.date + td))
有什麼想法?
編輯: 我已經成功使用下面的方法來解決這個問題:
from sqlalchemy.sql import between
import datetime
# [all other relevant imports]
td = datetime.timedelta(seconds=2)
t1_entry = session.query(table_1).filter(table_1.name == 'the_name').first()
if t1_entry is not None:
tmin = t1_entry.date - td
tmax = t1_entry.date + td
t2_entry = session.query(table_2).filter(between(table_2.date, tmin, tmax)).first()
return (t1_entry, t2_entry)
return None
這樣的比較可以做到的,但我不知道這種方法是有效的。
此問題的時間對象的不同格式可能會成爲頭痛! – Escualo 2010-05-29 00:09:26