我正在使用SQLAlchemy来创建与数据库无关的查询。
我面临to_char
功能的一个问题。
考虑简单的查询,如:
select to_char(id,'999') from xyz
它正在使用Postgres,但MySQL不支持它。
如何使用SQLAlchemy使这个查询与数据库无关?
答案 0 :(得分:3)
使用CAST函数进行简单类型转换。它是SQL标准,SQLAlchemy直接通过cast()函数支持它:http://www.sqlalchemy.org/docs/05/reference/sqlalchemy/expressions.html?highlight=cast#sqlalchemy.sql.expression.cast。
对于日期值,SQLA有一个extract()函数,用于生成SQL EXTRACT函数 - 转换层将常用字段名称(如“month”,“day”,“minute”等)转换为后端的相应关键字。使用
答案 1 :(得分:2)
使用强制转换功能,例如
cast(numberfield as char)
答案 2 :(得分:0)
你在MySQL中寻找format
:
select format(id, '999') from xyz
回答你的一对一问题:没有跨数据库的方法来做到这一点。每个RDBMS都是非常不同的,并且在相当简单的查询之后没有真正的标准化。字符串操作尤其如此。