как использовать dateadd в sqlalchemy с фильтром?

SQL-выражение:

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

код питона:

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: Использование DATEADD в sqlalchemy


person dived    schedule 16.08.2013    source источник
comment
Что именно вы подразумеваете под неправильным? Не могли бы вы добавить, какой результат вы получаете и какой результат вы ожидаете?   -  person moschlar    schedule 16.08.2013
comment
Я меняю func.dateadd на func.adddate Тогда это работает!.   -  person dived    schedule 16.08.2013


Ответы (2)


Попробуй это:

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

предварительно:

extract('hour', cast(t_table.open_time,TIMESTAMP)) - 5 == 12

extract('dow', cast(cast(t_table.open_time, TIMESTAMP) - 5,TIMESTAMP)) == 3
person sanphi    schedule 26.07.2018
comment
Добро пожаловать в Stack Overflow! Пожалуйста, не отвечайте только исходным кодом. Постарайтесь дать хорошее описание того, как работает ваше решение. См.: Как написать хороший ответ?. Спасибо - person sɐunıɔןɐqɐp; 26.07.2018