我正在使用SQLAlchemy創建與數據庫無關的查詢。SQLAlchemy中與數據庫無關的to_char函數
我面臨着to_char
函數的一個問題。
考慮簡單的查詢,如:
select to_char(id,'999') from xyz
它的工作對Postgres的,但MySQL不支持它。
如何使用SQLAlchemy使此查詢與數據庫無關?
我正在使用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都非常不同,並且在相當簡單的查詢之後沒有真正的標準化。字符串操作尤其如此。
使用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)
我同意..到u ..我讀了一些在那裏,使用SQLAlchemy的,我們可以過來的差別。我嘗試,但未能:( – asb 2009-08-04 12:28:17
@asb:你必須檢查你呼叫前正在使用的RDBMS,遺憾的是這要麼是函數本身,或者只是使用不同的功能與不同的引擎。 – Eric 2009-08-04 12:47:19