Skip to content

Commit 3fae26f

Browse files
committedMay 14, 2020
[oracle] Treat DATE field types as datetime values
Fixes #28559
1 parent 425cbf2 commit 3fae26f

File tree

2 files changed

+6
-10
lines changed

2 files changed

+6
-10
lines changed
 

‎src/providers/oracle/qgsoracleprovider.cpp

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -756,13 +756,6 @@ bool QgsOracleProvider::loadFields()
756756
continue;
757757

758758
QVariant::Type type = field.type();
759-
760-
if ( types.value( field.name() ) == "DATE" )
761-
{
762-
// date types are incorrectly detected as datetime
763-
type = QVariant::Date;
764-
}
765-
766759
QgsField newField( field.name(), type, types.value( field.name() ), field.length(), field.precision(), comments.value( field.name() ) );
767760

768761
QgsFieldConstraints constraints;

‎tests/src/python/test_provider_oracle.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,9 @@ def getSource(self):
9999
def treat_time_as_string(self):
100100
return True
101101

102+
def treat_date_as_datetime(self):
103+
return True
104+
102105
def getEditableLayer(self):
103106
return self.getSource()
104107

@@ -190,15 +193,15 @@ def testDateTimeTypes(self):
190193

191194
fields = vl.dataProvider().fields()
192195
self.assertEqual(fields.at(fields.indexFromName(
193-
'date_field')).type(), QVariant.Date)
196+
'date_field')).type(), QVariant.DateTime)
194197
self.assertEqual(fields.at(fields.indexFromName(
195198
'datetime_field')).type(), QVariant.DateTime)
196199

197200
f = next(vl.getFeatures(QgsFeatureRequest()))
198201

199202
date_idx = vl.fields().lookupField('date_field')
200-
self.assertIsInstance(f.attributes()[date_idx], QDate)
201-
self.assertEqual(f.attributes()[date_idx], QDate(2004, 3, 4))
203+
self.assertIsInstance(f.attributes()[date_idx], QDateTime)
204+
self.assertEqual(f.attributes()[date_idx], QDateTime(2004, 3, 4, 0, 0, 0))
202205
datetime_idx = vl.fields().lookupField('datetime_field')
203206
self.assertIsInstance(f.attributes()[datetime_idx], QDateTime)
204207
self.assertEqual(f.attributes()[datetime_idx], QDateTime(

0 commit comments

Comments
 (0)
Please sign in to comment.