Hi. It seems the problem was caused from psycopg2 implementation. - https://github.com/psycopg/psycopg2/blob/master/psycopg/adapter_datetime.c#L63-L76
Thank you. 2014년 11월 13일 목요일 오후 4시 53분 22초 UTC+9, Hyunjun Kim 님의 말: > > Greetings, > > I'm trying to use PostgreSQL's TIME WITH TIME ZONE type. I've used > SQLAlchemy's generic type Time(timezone=True) and it was successful that > the schema was reflected to TIME WITH TIME ZONE(timetz) when I use > alembic or metadata.create_all(). > > The problem is, it seems that the timezone-aware datetime.time objects > are considered as timezone-naive time type(casted to time, not timetz). > For example:: > > >>> # 21:00+00 (UTC) > >>> repr(t) > 'datetime.time(21, 0, tzinfo=<styleshare.utc.UTC object at 0x10f5f7b10>)' > > >>> # 21:00+09 (KST) == 12:00+00 (UTC) > >>> query(m.Advertisement.live_time).all() > [(datetime.time(21, 0, tzinfo=psycopg2.tz.FixedOffsetTimezone(offset=540, > name=None)),)] > > >>> # Should be 0 rows, but.. > >>> query(m.Advertisement.live_time).filter_by(live_time=t).all() > [(datetime.time(21, 0, tzinfo=psycopg2.tz.FixedOffsetTimezone(offset=540, > name=None)),)] > > >>> # Executed SQL > >>> print query(m.Advertisement.live_time).filter_by(live_time=t).render() > SELECT advertisements.live_time > FROM advertisements > WHERE advertisements.live_time = *'21:00:00+00:00'::time* > > Example Environment:: > - SQLAlchemy 0.9.4 > - PostgreSQL 9.3.4.2 > - m.Advertisement.live_time property is OR-mapped on > advertisements.live_time column in the database and it's defined as TIME > WITH TIME ZONE. > > Is it the bug of SQLAlchemy or were there any mistakes? Any helps are > welcome. > > Thank you, > Hyunjun > -- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To unsubscribe from this group and stop receiving emails from it, send an email to sqlalchemy+unsubscr...@googlegroups.com. To post to this group, send email to sqlalchemy@googlegroups.com. Visit this group at http://groups.google.com/group/sqlalchemy. For more options, visit https://groups.google.com/d/optout.