How could one get only the unique dates from a datetime column, disregarding 
the time part of the datetime object?

I know I can do:
>>> s = model.sqla.select([model.channel_events.c.stamp], 
>>> model.channel_events.c.channel_participation_id == 5)
>>> results = model.Session.execute(s).fetchall()
>>> for res in results:
...     print res
...
(datetime.datetime(2007, 9, 4, 11, 44, 8, 199613, 
tzinfo=<psycopg2.tz.FixedOffsetTimezone object at 0x8c9eb8c>),)
(datetime.datetime(2007, 9, 3, 19, 7, 51, 147560, 
tzinfo=<psycopg2.tz.FixedOffsetTimezone object at 0x8c9ef8c>),)
(datetime.datetime(2007, 9, 4, 12, 5, 44, 654299, 
tzinfo=<psycopg2.tz.FixedOffsetTimezone object at 0x8c9efcc>),)
(datetime.datetime(2007, 9, 4, 12, 7, 30, 279193, 
tzinfo=<psycopg2.tz.FixedOffsetTimezone object at 0x8c9ee6c>),)
(datetime.datetime(2007, 9, 4, 12, 18, 48, 106636, 
tzinfo=<psycopg2.tz.FixedOffsetTimezone object at 0x8c9ef2c>),)
(datetime.datetime(2007, 9, 4, 12, 20, 38, 63371, 
tzinfo=<psycopg2.tz.FixedOffsetTimezone object at 0x8c9ec6c>),)
(datetime.datetime(2007, 9, 4, 12, 20, 40, 271526, 
tzinfo=<psycopg2.tz.FixedOffsetTimezone object at 0x8ca30cc>),)
(datetime.datetime(2007, 9, 4, 12, 22, 55, 752780, 
tzinfo=<psycopg2.tz.FixedOffsetTimezone object at 0x8ca304c>),)
(datetime.datetime(2007, 9, 4, 12, 57, 19, 88308, 
tzinfo=<psycopg2.tz.FixedOffsetTimezone object at 0x8ca30ac>),)
(datetime.datetime(2007, 9, 4, 13, 26, 19, 226345, 
tzinfo=<psycopg2.tz.FixedOffsetTimezone object at 0x8ca3bcc>),)
(datetime.datetime(2007, 9, 4, 10, 38, 13, 598636, 
tzinfo=<psycopg2.tz.FixedOffsetTimezone object at 0x8ca3c2c>),)
(datetime.datetime(2007, 9, 4, 10, 47, 5, 961859, 
tzinfo=<psycopg2.tz.FixedOffsetTimezone object at 0x8ca3c8c>),)
(datetime.datetime(2007, 9, 4, 10, 47, 48, 8467, 
tzinfo=<psycopg2.tz.FixedOffsetTimezone object at 0x8ca3cec>),)
(datetime.datetime(2007, 9, 4, 11, 31, 55, 254280, 
tzinfo=<psycopg2.tz.FixedOffsetTimezone object at 0x8ca3d4c>),)
(datetime.datetime(2007, 9, 4, 11, 41, 11, 196310, 
tzinfo=<psycopg2.tz.FixedOffsetTimezone object at 0x8ca3dac>),)
>>> len(results)
15
>>> len(set([date[0].date() for date in results]))
2
>>>

But I'm sure this can be done differently.

If it makes a difference I'm using postgres as the backend.

Best Regards,
-- 
Pedro Algarvio
   __ ___  ___ _______        ___ __
|   Y   .'  _|   _   .-----.'  _|  |_   .-----.----.-----.
|.  |   |   _|   1___|  _  |   _|   _|__|  _  |   _|  _  |
|.  |   |__| |____   |_____|__| |____|__|_____|__| |___  |
|:  1   |    |:  1   |                             |_____|
|::.. . |    |::.. . |  ufs [AT] ufsoft [DOT] org
`-------'    `-------'    ufs [AT] sapo [DOT] pt


--~--~---------~--~----~------------~-------~--~----~
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