On Wednesday, April 18, 2012 10:17:43 AM UTC-4, Michael Bayer wrote:
>
>
> On Apr 18, 2012, at 9:36 AM, Will wrote:
>
> The postgresql Time type supports times from "00:00:00" to "24:00:00" in 
> accordance with ISO 8601 <http://en.wikipedia.org/wiki/ISO_8601#Times>. 
>  The python datetime.time class does not currently support "24:00:00" but 
> it would be useful to have SQLAlchemy support that.  
>
>
> puzzled, looking at 
> http://docs.python.org/library/datetime.html#datetime.time:
>
> All arguments are optional. *tzinfo* may be None, or an instance of a 
> tzinfo 
> <http://docs.python.org/library/datetime.html#datetime.tzinfo>subclass. The 
> remaining arguments may be ints or longs, in the following 
> ranges:
>
>    - 0 <= hour < 24 
>    - 0 <= minute < 60 
>    - 0 <= second < 60 
>    - 0 <= microsecond < 1000000. 
>
> ?
>
> the coercion of PG's date/time fields into Python objects are a product of 
> psycopg2.   If psycopg2 isn't doing what you want here, you'd want to check 
> with that product - psycopg2 has a comprehensive system of modifying it's 
> typing behavior: 
> http://initd.org/psycopg/docs/extensions.html#sql-adaptation-protocol-objects
>
>
> I'm using SQLAlchemy 0.6.8 and was wondering if there is a way to allow it 
> to support the "24:00:00" midnight notation.
>
>
> SQLAlchemy doesn't deal with string notations when it talks to Postgresql 
> regarding date and time types.    Psycopg2 handles the details of string 
> formatting.
>
>
> I've tried to make a custom type that would support it, but it seems that 
> psycopg2 will return a datetime.time class even if I define the custom 
> type to implement the Text type.
>
>
> right, this is all psycopg2.   You'd need to establish this behavior using 
> psycopg2 only first, by registering adapters as described in the above 
> document.    Once you set that up SQLAlchemy just passes that data right 
> through.
>
>
Yes, I knew about the adapters.  A coworker of mine came up with this:

   ...

s = Session()
c = s.connection()

cast_time = lambda value, cur: Time.parse(value)
TIME = c.dialect.dbapi.extensions.new_type((1083,), "TIME", cast_time)

  c.dialect.dbapi.extensions.register_type(TIME)

I should have mentioned that in the first place.  I was wondering, what's 
the recommended way to modify the dialect settings globally, so they are 
used whenever a new engine/connection is created?

On Wednesday, April 18, 2012 10:17:43 AM UTC-4, Michael Bayer wrote:
>
>
> On Apr 18, 2012, at 9:36 AM, Will wrote:
>
> The postgresql Time type supports times from "00:00:00" to "24:00:00" in 
> accordance with ISO 8601 <http://en.wikipedia.org/wiki/ISO_8601#Times>. 
>  The python datetime.time class does not currently support "24:00:00" but 
> it would be useful to have SQLAlchemy support that.  
>
>
> puzzled, looking at 
> http://docs.python.org/library/datetime.html#datetime.time:
>
> All arguments are optional. *tzinfo* may be None, or an instance of a 
> tzinfo 
> <http://docs.python.org/library/datetime.html#datetime.tzinfo>subclass. The 
> remaining arguments may be ints or longs, in the following 
> ranges:
>
>    - 0 <= hour < 24 
>    - 0 <= minute < 60 
>    - 0 <= second < 60 
>    - 0 <= microsecond < 1000000. 
>
> ?
>
> the coercion of PG's date/time fields into Python objects are a product of 
> psycopg2.   If psycopg2 isn't doing what you want here, you'd want to check 
> with that product - psycopg2 has a comprehensive system of modifying it's 
> typing behavior: 
> http://initd.org/psycopg/docs/extensions.html#sql-adaptation-protocol-objects
>
>
> I'm using SQLAlchemy 0.6.8 and was wondering if there is a way to allow it 
> to support the "24:00:00" midnight notation.
>
>
> SQLAlchemy doesn't deal with string notations when it talks to Postgresql 
> regarding date and time types.    Psycopg2 handles the details of string 
> formatting.
>
>
> I've tried to make a custom type that would support it, but it seems that 
> psycopg2 will return a datetime.time class even if I define the custom 
> type to implement the Text type.
>
>
> right, this is all psycopg2.   You'd need to establish this behavior using 
> psycopg2 only first, by registering adapters as described in the above 
> document.    Once you set that up SQLAlchemy just passes that data right 
> through.
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/sqlalchemy/-/Oa13nLlwW5YJ.
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.

Reply via email to