use a TypeDecorator that truncates the time portion off of the date as returned 
by Oracle.

http://docs.sqlalchemy.org/en/latest/core/types.html#augmenting-existing-types



On Mar 31, 2012, at 2:52 AM, jo wrote:

> Mike Conley wrote:
>> 
>> The Oracle database only has one date type, and it includes time. If you 
>> require date only it is up to you to extract the date. Alternatively, if you 
>> really care about date only for all usage of that column, store it with a 
>> time of 00:00:00.
>> 
> the value stored in such column is already with time 00:00:00
> my problem is when I try to campare it with a date:
> 
> data_inizio = datetime.datetime(2012, 3, 31, 0, 0, 0, 0)
> data_fine = datetime.date(2012, 3, 31)
> 
> if data_inizio > data_fine:
> ...
> 
> TypeError: can't compare datetime.datetime to datetime.date
> 
> 
> With DB PostgreSQL it works, because Pg returns a date object,
> but when I change DB to Oracle it doesn't work anymore.
> 
> I know that I can transform it to a date as:
> data_inizio.date()
> 
> but when I use PostgeSQL it is already a date and I can't use this syntax:
> 
> AttributeError: 'datetime.date' object has no attribute 'date'
> 
> I would not change my code to test if I'm using Oracle or Pg if there's 
> another way...
> 
> 
> 
> j
> 
> 
>> On Mar 30, 2012 8:08 AM, "jo" <[email protected] 
>> <mailto:[email protected]>> wrote:
>> 
>>    shinriyo wrote:
>> 
>>        hi jo
>> 
>>        Oracle and PostgreSQL are different.
>>        Oracle also have hour and minutes and second.
>> 
>>        If you want minutes and second on PostgresQL, you should use
>>        datetime.
>> 
>> 
>> 
>>    Hi shinryo,
>> 
>>    I don't want hours and minutes.
>>    My problem is that I have a comparison in my code like this:
>> 
>>    if data_inizio > data_fine:
>>    ...
>> 
>>    TypeError: can't compare datetime.datetime to datetime.date
>> 
>>    --------------
>> 
>>    data_inizio is a value returned by:
>>    Frazione.get(31).tariffa_data_inizio # returns an object
>>    datetime.date (both oracle and pg)
>> 
>>    data_fine is a value returned by engine: #oracle returns a
>>    datetime while pg returns a date
>>    engine.connect().execute('select data_fine from tariffa where
>>    id_frazione=31').fetchone()
>> 
>> 
>>    I would like to know why Oracle engine returns dates as
>>    datetime.datetime instead of datetime.date
>>    and if there is a way to have the same behavior between oracle and
>>    pg in such case.
>> 
>>    j
>> 
>>    --     You received this message because you are subscribed to the Google
>>    Groups "sqlalchemy" group.
>>    To post to this group, send email to [email protected]
>>    <mailto:[email protected]>.
>>    To unsubscribe from this group, send email to
>>    [email protected]
>>    <mailto:sqlalchemy%[email protected]>.
>>    For more options, visit this group at
>>    http://groups.google.com/group/sqlalchemy?hl=en.
>> 
>> -- 
>> 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.
> 
> 
> -- 
> Jose Soares                              _/_/  Sferacarta Net                 
>                  Via Bazzanese 69                       _/_/     _/_/_/
> 40033 Casalecchio di Reno             _/_/   _/_/  _/_/
> Bologna - Italy                      _/_/   _/_/  _/_/
> Ph  +39051591054              _/_/  _/_/   _/_/  _/_/
> fax +390516131537            _/_/  _/_/   _/_/  _/_/
> web:www.sferacarta.com        _/_/_/       _/_/_/
> 
> Le informazioni contenute nella presente mail ed in ogni eventuale file 
> allegato sono riservate e, comunque, destinate esclusivamente alla persona o 
> ente sopraindicati, ai sensi del decreto legislativo 30 giugno 2003, n. 196. 
> La diffusione, distribuzione e/o copiatura della mail trasmessa, da parte di 
> qualsiasi soggetto diverso dal destinatario, sono vietate. La correttezza, 
> l’integrità e la sicurezza della presente mail non possono essere garantite. 
> Se avete ricevuto questa mail per errore, Vi preghiamo di contattarci 
> immediatamente e di eliminarla. Grazie.
> 
> This communication is intended only for use by the addressee, pursuant to 
> legislative decree 30 June 2003, n. 196. It may contain confidential or 
> privileged information. You should not copy or use it to disclose its 
> contents to any other person. Transmission cannot be guaranteed to be 
> error-free, complete and secure. If you are not the intended recipient and 
> receive this communication unintentionally, please inform us immediately and 
> then delete this message from your system. Thank you.
> 
> -- 
> 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.
> 

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