1

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パラメータを関数に送信するにはどうすればよいですか?

4

2 に答える 2

3

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()
于 2014-04-29T00:25:31.493 に答える
0

任意のクエリを実行する方法は次のとおりです。

engine.execute(query_string)

エンジンのセットアップは別の話です。しかし、それはかなりよく文書化されています。

別の話であるモデルを使用してこれを行う方法を尋ねている場合...

それがあなたの質問の最初の部分です(おそらく)。しかし、func.to_date 関数とはどういう意味ですか? どうか明らかにしてください

于 2012-08-22T09:30:17.527 に答える