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

问题描述:

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

我面临着to_char函数的一个问题。

考虑简单的查询,如:

select to_char(id,'999') from xyz 

它的工作对Postgres的,但MySQL不支持它。

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

你在MySQL中寻找format

select format(id, '999') from xyz 

回答您的所有功能于一身的问题:有没有跨数据库的方式来做到这一点。每个RDBMS都非常不同,并且在相当简单的查询之后没有真正的标准化。字符串操作尤其如此。

+0

我同意..到u ..我读了一些在那里,使用SQLAlchemy的,我们可以过来的差别。我尝试,但未能:( – asb 2009-08-04 12:28:17

+0

@asb:你必须检查你呼叫前正在使用的RDBMS,遗憾的是这要么是函数本身,或者只是使用不同的功能与不同的引擎。 – Eric 2009-08-04 12:47:19

使用CAST函数进行简单类型转换。它是SQL标准,SQLAlchemy通过cast()函数直接支持它:http://www.sqlalchemy.org/docs/05/reference/sqlalchemy/expressions.html?highlight=cast#sqlalchemy.sql.expression.cast

对于日期值,SQLA具有一个生成SQL EXTRACT函数的extract()函数 - 翻译层将通用字段名像“month”,“day”,“minute”等转换为适合后端的关键字正在使用。

使用CAST功能,例如

cast(numberfield as char)