使用普通的 Oracle SQL ,我会使用:
select *
from mytable
where
to_date(date_d, 'dd-mon-yyyy') == to_date('01-Jan-2013', 'dd-mon-yyyy')
现在使用SQLAlchemy,我不知所措。
from datetime import datetime
dt = myTable.c.date_d == datetime(2013, 1, 1)
q = session.query(myTable).filter(dt)
q.first()
会给我不正确的结果,因为date_d是 varchar ,因此它不会转换为 date ,除非我运行Oracle函数来转换其中的数据类型查询。我怎么能这样做?
答案 0 :(得分:2)
原来我不需要转换数据类型。 SQLAlchemy似乎透明地这样做。但是,如果我想明确地这样做:
from sqlalchemy import func
dt = func.to_date(myTable.c.date_d, 'dd-mon-yyyy') == datetime(2013, 1, 1)
q = session.query(dt)
q.first()
我的错误结果是由于一个无关的错误。