【问题标题】:sqlalchemy select to_datesqlalchemy 选择 to_date
【发布时间】:2012-08-17 15:31:51
【问题描述】:

连接到 Oracle 数据库,我需要运行以下查询:

SELECT
    ad_campaign_id as campaign_id,
    TO_DATE("DAY", 'YYYY-MM-DD') as DAY,
    NVL(spent, 0) as spent,
    impressions,
    clicks 
FROM sometable

如何使用 SQLAlchemy 做到这一点?如何将参数发送到func.to_date 函数?

【问题讨论】:

    标签: python oracle sqlalchemy


    【解决方案1】:

    SQLAlchemy 的 func 将接受任何 Oracle 函数作为属性。

    from sqlalchemy import func
    
    campaign_id = sometable.c.ad_campaign_id
    day = func.to_date(sometable.c.day, 'YYYY-MM-DD') # Is this what you need?
    spent = func.nvl(sometable.c.spent, 0)
    clicks = sometable.c.clicks
    cols = [campaign_id, day, spent, clicks]
    
    # Feel free to skip, this is just so you get the labels you want
    labels = "campaign_id day spent clicks".split()
    col_label = zip(cols, labels)
    labelled = [c.label(l) for (c,l) in col_label]
    
    q = session.query(*labelled) # or use *cols if you don't care about labels
    q.all()
    

    【讨论】:

      【解决方案2】:

      执行任意查询的方法如下:

      engine.execute(query_string)
      

      设置引擎是另一回事。不过它的记录很好。

      如果您再次询问如何使用不同的模型来做到这一点......

      所以这是你的问题的第一部分回答(可能)。但是 func.to_date 函数是什么意思?请澄清

      【讨论】:

        猜你喜欢
        • 2014-06-14
        • 1970-01-01
        • 1970-01-01
        • 2010-10-12
        • 2011-03-04
        • 2021-05-06
        • 1970-01-01
        • 1970-01-01
        • 2021-08-01
        相关资源
        最近更新 更多