sqlalchemy + postgresql CASE语句错误

时间:2018-11-20 00:50:02

标签: python postgresql sqlalchemy

我正在使用SQLAlchmey以编程方式生成要在Postgresql中执行的SQL语句。到目前为止一切顺利,但是今天我不得不在SQL语句中创建并运行一些具有CASE .. WHEN .. ELSE ..结构的语句。

我最初的要求是从一列中的不同时间格式创建时间格式,以便我的sql字符串如下所示

sql_String = """select 
    text_field_1,
    case
        when time_field like '%AM%' then to_timestamp(time_field, 'FMHH12:MI:SS AM')::time
        when time_field like '%PM%' then to_timestamp(time_field, 'FMHH12:MI:SS AM')::time
        else to_timestamp(time_field, 'FMHH24:MI:SS')::time
    end as time_field
from 
    table_1"""

使用以下SQLAlchemy方法,

conn = pg_engine.connect()
trans = conn.begin()
conn.execute(sql_string)
trans.commit()
conn.close()

尝试了上面的代码,并且可以在Postgresql中使用。但是,当我执行SQL Alchemy时,会得到一个TypeError: 'dict' object does not support indexing

我也尝试了类似的CASE .. WHEN .. ELSE ..语句,但该语句也具有非日期/时间列,并且存在相同的错误。

我做错什么了吗?

0 个答案:

没有答案