diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2007-07-15 04:11:51 +0000 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2007-07-15 04:11:51 +0000 |
commit | 6566427fd0587fc45bdc4c0eeb651ce43d36d53d (patch) | |
tree | 9575505cdf74621df62af647c263004bc3b80adf /lib/sqlalchemy/databases/oracle.py | |
parent | 5e93bb715260c7d259fe24d1522c51cdbf126e6d (diff) | |
download | sqlalchemy-6566427fd0587fc45bdc4c0eeb651ce43d36d53d.tar.gz |
- converts cx_oracle datetime objects to Python datetime.datetime when
Python 2.3 used [ticket:542]
Diffstat (limited to 'lib/sqlalchemy/databases/oracle.py')
-rw-r--r-- | lib/sqlalchemy/databases/oracle.py | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/lib/sqlalchemy/databases/oracle.py b/lib/sqlalchemy/databases/oracle.py index e7f8f483a..35b72af6c 100644 --- a/lib/sqlalchemy/databases/oracle.py +++ b/lib/sqlalchemy/databases/oracle.py @@ -43,6 +43,14 @@ class OracleDate(sqltypes.Date): class OracleDateTime(sqltypes.DateTime): def get_col_spec(self): return "DATE" + + def convert_result_value(self, value, dialect): + if value is None or isinstance(value,datetime.datetime): + return value + else: + # convert cx_oracle datetime object returned pre-python 2.4 + return datetime.datetime(value.year,value.month, + value.day,value.hour, value.minute, value.second) # Note: # Oracle DATE == DATETIME @@ -57,6 +65,15 @@ class OracleTimestamp(sqltypes.TIMESTAMP): def get_dbapi_type(self, dialect): return dialect.TIMESTAMP + def convert_result_value(self, value, dialect): + if value is None or isinstance(value,datetime.datetime): + return value + else: + # convert cx_oracle datetime object returned pre-python 2.4 + return datetime.datetime(value.year,value.month, + value.day,value.hour, value.minute, value.second) + + class OracleString(sqltypes.String): def get_col_spec(self): return "VARCHAR(%(length)s)" % {'length' : self.length} |