2013-08-16 33 views
2

SQL表達式:如何在帶過濾器的sqlalchemy中使用dateadd?

select * 
    from order 
where status=0 
    and adddate(created_time, interval 1 day)>now(); 

Python代碼:

from sqlalchemy.sql.expression import func, text 
from datetime import datetime 

closed_orders = DBSession.query(Order).filter(func.dateadd(Order.create_time,   text('interval 1 day'))>datetime.now()).all() 

但它有錯。如何正確地做到這一點?

感謝

REF:Using DATEADD in sqlalchemy

+0

究竟你錯了是什麼意思? 你可以添加你得到的輸出和你期望的輸出嗎? – moschlar

+0

我將「func.dateadd」更改爲「func.adddate」 然後它可以正常工作! – dived

回答

2

試試這個:

from sqlalchemy import func 
import datetime 
DBSession.query(Order)\ 
    .filter(func.ADDDATE(Order.create_time,1)>datetime.datetime.now())