diff --git a/src/providers/oracle/qgsoracleprovider.cpp b/src/providers/oracle/qgsoracleprovider.cpp index fa47fda58f9e..0339b73cc5ac 100644 --- a/src/providers/oracle/qgsoracleprovider.cpp +++ b/src/providers/oracle/qgsoracleprovider.cpp @@ -756,13 +756,6 @@ bool QgsOracleProvider::loadFields() continue; QVariant::Type type = field.type(); - - if ( types.value( field.name() ) == "DATE" ) - { - // date types are incorrectly detected as datetime - type = QVariant::Date; - } - QgsField newField( field.name(), type, types.value( field.name() ), field.length(), field.precision(), comments.value( field.name() ) ); QgsFieldConstraints constraints; diff --git a/tests/src/python/test_provider_oracle.py b/tests/src/python/test_provider_oracle.py index 6553afd2473a..d02cb1835e35 100644 --- a/tests/src/python/test_provider_oracle.py +++ b/tests/src/python/test_provider_oracle.py @@ -99,6 +99,9 @@ def getSource(self): def treat_time_as_string(self): return True + def treat_date_as_datetime(self): + return True + def getEditableLayer(self): return self.getSource() @@ -190,15 +193,15 @@ def testDateTimeTypes(self): fields = vl.dataProvider().fields() self.assertEqual(fields.at(fields.indexFromName( - 'date_field')).type(), QVariant.Date) + 'date_field')).type(), QVariant.DateTime) self.assertEqual(fields.at(fields.indexFromName( 'datetime_field')).type(), QVariant.DateTime) f = next(vl.getFeatures(QgsFeatureRequest())) date_idx = vl.fields().lookupField('date_field') - self.assertIsInstance(f.attributes()[date_idx], QDate) - self.assertEqual(f.attributes()[date_idx], QDate(2004, 3, 4)) + self.assertIsInstance(f.attributes()[date_idx], QDateTime) + self.assertEqual(f.attributes()[date_idx], QDateTime(2004, 3, 4, 0, 0, 0)) datetime_idx = vl.fields().lookupField('datetime_field') self.assertIsInstance(f.attributes()[datetime_idx], QDateTime) self.assertEqual(f.attributes()[datetime_idx], QDateTime(