Python Oracle到SQLAlchemy查询中的日期
使用普通的Oracle SQL,我将使用:Python Oracle到SQLAlchemy查询中的日期,python,sql,oracle,sqlalchemy,Python,Sql,Oracle,Sqlalchemy,使用普通的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).f
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函数转换查询中的数据类型。我该怎么做呢?原来我不需要转换数据类型。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()
我的错误结果是由于一个无关的错误。
步骤1 -停止存储日期作为文本。@ DanBracuk,认为这是一个智力练习。