Gunnlaugur Briem wrote:
>
> 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”.

SQLA doesn't process datetime objects at all when using the postgres
dialect - psycopg2 supports datetime objects directly and sqlalchemy
passes them straight through.   you should use only timezone-aware
datetime objects if you are dealing with a column of that type.  If you'd
like to add validation or processing specific to your use case, you can
use the @validates decorator at the ORM level or the TypeDecorator at the
table metadata level to provide whatever rulesets you'd like.


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to