![](/img/trans.png)
[英]Snowflake table created with SQLAlchemy requires quotes ("") to query
[英]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.