You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQLAlchemy字符串拼接异常:+未转为SQLite的||运算符问题排查

使用SQLAlchemy构造SQLite日期表达式的字符串连接问题

我尝试用SQLAlchemy编写如下代码,构造日期计算的SQL表达式:

func.date(cls.entry_date, '+' + cls.duration + ' year', '-1 day')

实际生成的SQL语句:

date("My_Table"."Entry date",  '+' + "My_Table"."Durée" || ' year', '-1 day', '-1 day')

但我需要的正确SQL语句应该是:

date("My_Table"."Entry date",  '+' || "My_Table"."Durée" || ' year', '-1 day', '-1 day')

问题在于:cls.duration与' year'之间的+被正确转换为SQLite的字符串连接符||,但'+'与cls.duration之间的+始终无法转换,一直保留为+。我尝试更换'+'字符,也没有效果。

补充尝试的方案:

  • 用func.concat('+', cls.duration, ' year'),但SQLite不支持该函数;
  • 使用f-string可以达到效果,但我认为应该有更合适的SQLAlchemy原生实现方式,特此求助。

内容的提问来源于stack exchange,提问作者zigma12

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 22:12:09