繁体   English   中英

删除SQLAlchemy生成的查询中的引号

[英]Remove quotes in query generated by SQLAlchemy

这与使用SQLAlchemy Integer字段创建用于比较的timedelta对象不同,因为该线程询问添加时间时要使用哪个函数。 该功能是针对其MySQL版本而找到的,但是,用户的后续编辑偏离了其原始问题,因此无法回答该问题。

我正在使用MySQL。 我想使用一个名为timestampadd的函数。 https://dev.mysql.com/doc/refman/5.5/zh-CN/date-and-time-functions.html#function_timestampadd第一个参数是我要添加的时间单位,例如:MINUTE,HOUR,DAY 。

在编写SQLAlchemy查询时,我不能做类似的事情

datetime_now = datetime.datetime.utcnow()
Item.query.filter(Item.created <= sqlalchemy.func.timestampadd(MINUTE, 1, datetime_now))

如果这样做,我将得到MINUTE的未定义错误。 我也尝试过:

Item.query.filter(Item.created <= sqlalchemy.func.timestampadd('MINUTE', 1, datetime_now))

但这会生成timestampadd调用,并在单元周围加上引号,这会导致MySQL错误。 如何在生成的查询中删除MINUTE周围的引号?

为了按原样传递unit参数关键字,请使用text()构造:

Item.query.filter(
    Item.created <= sqlalchemy.func.timestampadd(text('MINUTE'), 1, datetime_now))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM