summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/databases
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sqlalchemy/databases')
-rw-r--r--lib/sqlalchemy/databases/oracle.py16
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,