【问题标题】:how to using dateadd in sqlalchemy with filter?如何在带有过滤器的sqlalchemy中使用dateadd?
【发布时间】:2013-08-18 12:20:23
【问题描述】:

sql 表达式:

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() 

但它错了。如何正确地做?

谢谢

参考:Using DATEADD in sqlalchemy

【问题讨论】:

  • 你说的错到底是什么意思?你能添加你得到的输出和你期望的输出吗?
  • 我把“func.dateadd”改成“func.adddate”然后就可以了!

标签: mysql sqlalchemy turbogears dateadd


【解决方案1】:

试试这个:

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

【讨论】:

    【解决方案2】:

    转瞬:

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

    【讨论】:

    • 欢迎来到 Stack Overflow!请不要只用源代码回答。尝试对您的解决方案如何工作提供一个很好的描述。请参阅:How do I write a good answer?。谢谢
    猜你喜欢
    • 2016-03-03
    • 1970-01-01
    • 2013-03-12
    • 1970-01-01
    • 2017-05-31
    • 2017-01-17
    • 1970-01-01
    • 2018-04-04
    • 2017-12-25
    相关资源
    最近更新 更多