diff options
Diffstat (limited to 'lib/sqlalchemy/databases')
| -rw-r--r-- | lib/sqlalchemy/databases/oracle.py | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/lib/sqlalchemy/databases/oracle.py b/lib/sqlalchemy/databases/oracle.py index 1cb4a0027..55695e1ef 100644 --- a/lib/sqlalchemy/databases/oracle.py +++ b/lib/sqlalchemy/databases/oracle.py @@ -11,6 +11,7 @@ from sqlalchemy import util, sql, engine, schema, ansisql, exceptions, logging from sqlalchemy.engine import default, base import sqlalchemy.types as sqltypes +import datetime class OracleNumeric(sqltypes.Numeric): @@ -28,6 +29,17 @@ class OracleSmallInteger(sqltypes.Smallinteger): def get_col_spec(self): return "SMALLINT" +class OracleDate(sqltypes.Date): + def get_col_spec(self): + return "DATE" + def convert_bind_param(self, value, dialect): + return value + def convert_result_value(self, value, dialect): + if not isinstance(value, datetime.datetime): + return value + else: + return value.date() + class OracleDateTime(sqltypes.DateTime): def get_col_spec(self): return "DATE" @@ -111,7 +123,7 @@ colspecs = { sqltypes.Numeric : OracleNumeric, sqltypes.Float : OracleNumeric, sqltypes.DateTime : OracleDateTime, - sqltypes.Date : OracleDateTime, + sqltypes.Date : OracleDate, sqltypes.String : OracleString, sqltypes.Binary : OracleBinary, sqltypes.Boolean : OracleBoolean, @@ -122,7 +134,7 @@ colspecs = { ischema_names = { 'VARCHAR2' : OracleString, - 'DATE' : OracleDateTime, + 'DATE' : OracleDate, 'DATETIME' : OracleDateTime, 'NUMBER' : OracleNumeric, 'BLOB' : OracleBinary, |
