是否可以重写使用sqlalchemy和原始sql表达式时的默认type.DateTime行为?SQLAlchemy覆盖原始sql表达式上的types.DateTime
例如使用
myconnection.execute(text("select * from mytable where mydate > :mydate), {'mydate': mypythondatetimeobject)}
时,我想有type.DateTime从DateTime对象自动剥离时区。
更新:我发现,它的工作原理是利用bindparam和Typedecorator上像这样的查询:
class MyType(types.TypeDecorator):
impl = types.DateTime
def process_bind_param(self, value, dialect):
if value is not None:
return value.replace(tzinfo=None)
session.execute(
text(myquery, bindparams=[bindparam('mydateparam',
type_=MyType())]),
{'mydateparam':mydate}
)
,但我真的不想使用“bindparams”每个查询。是不是有可能简单地替换或重写默认的类型。
谢谢!我现在正在使用你的“mytext”解决方案,稍作改动。 – 2010-08-27 11:48:17