Hi, I get away with stuffing datetime.datetime.now() into a DateTime (timezone=True) column, despite the former being timezone-naive (.utcoffset() is None, .tzinfo is None, etc.).
It is stored in the table with UTC offset +00, which is arguably incorrect (states information that was not present in the input). But even if you call it correct, you get in trouble when you read the value back as an attribute of a mapped class in a session, set the attribute again to datetime.datetime.now() (again timezone-naive), and then try to query the session for the same object again. This retches up a TypeError: “can't compare offset-naive and offset-aware datetimes”. Code to reproduce: from sqlalchemy import Table, MetaData, Column, Integer, DateTime, create_engine from sqlalchemy.orm import sessionmaker, mapper from datetime import datetime, timedelta from pytz import utc t = Table('foo', MetaData(), Column('id', Integer, primary_key=True,), Column('dt', DateTime(timezone=True))) class T(object): pass mapper(T, t) e = create_engine('postgres://localhost/satest') t.create(bind=e, checkfirst=True) e.execute(t.delete()) # in case we are re-running this test Session = sessionmaker(bind=e) inst = T() inst.dt = datetime.now() assert inst.dt.utcoffset() is None session = Session() session.add(inst) session.commit() session.close() session = Session() inst = session.query(T).first() assert inst.dt.utcoffset() == timedelta(0) inst.dt = datetime.now() assert inst.dt.utcoffset() is None # next line raises TypeError: can't compare offset-naive and offset- aware datetimes inst = session.query(T).first() SQLAlchemy should either reject the timezone-naive datetime value right away when it is bound to a timezone-savvy DateTime column, or tolerate me setting a timezone-naive datetime value again. I root for the former. Regards, - Gulli --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To post to this group, send email to sqlalchemy@googlegroups.com To unsubscribe from this group, send email to sqlalchemy+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sqlalchemy?hl=en -~----------~----~----~----~------~----~------~--~---