3

我正在使用 SQLAlchemy 进行与数据库无关的查询。

我面临一个to_char功能问题。

考虑如下简单查询:

select to_char(id,'999') from xyz 

它在 Postgres 上工作,但 MySQL 不支持它。

如何使用 SQLAlchemy 使这个查询独立于数据库?

4

3 回答 3

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 函数——一个翻译层将常见的字段名,如“月”、“天”、“分钟”等转换为正在使用的后端的适当关键字。

于 2009-08-05T02:08:12.190 回答
2

使用 cast 函数,例如

cast(numberfield as char)
于 2012-10-02T14:00:54.550 回答
0

format您在 MySQL 中寻找:

select format(id, '999') from xyz

要回答您的多合一问题:没有跨数据库的方法可以做到这一点。每个 RDBMS 都非常不同,除了相当简单的查询之外,没有真正的标准化。对于字符串操作尤其如此。

于 2009-08-04T12:18:11.980 回答