SQLAlchemy中与数据库无关的to_char函数

时间:2009-08-04 12:14:30

标签: mysql sqlalchemy to-char

我正在使用SQLAlchemy来创建与数据库无关的查询。

我面临to_char功能的一个问题。

考虑简单的查询,如:

select to_char(id,'999') from xyz 

它正在使用Postgres,但MySQL不支持它。

如何使用SQLAlchemy使这个查询与数据库无关?

3 个答案:

答案 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都是非常不同的,并且在相当简单的查询之后没有真正的标准化。字符串操作尤其如此。