diff options
author | Andy Shaw <andy.shaw@qt.io> | 2018-05-22 15:22:23 +0200 |
---|---|---|
committer | Andy Shaw <andy.shaw@qt.io> | 2018-06-06 11:14:03 +0000 |
commit | ae42461f44cf63a66a087cf8c2660c3d914f474c (patch) | |
tree | 80048bbea2649c883edd76dfc58582aa09826b41 /src/plugins/sqldrivers/mysql | |
parent | eb655b7a1a0d4c8578b24fef490e72769cff0a65 (diff) |
MySQL: Handle TIME types as a string to allow the full range of data
As the full range of TIME is '-838:59:59' to '838:59:59' then we cannot
use QTime as the object to store this data in. Therefore a QString is
used instead for passing the data to and from. This does not impact
existing code using QTime already as it will still convert it from
the QString to a QTime to give the same result as before.
[ChangeLog][QtSql][MySQL] The TIME data type is now treated like a
string-based type in order to respect the full range of the TIME data
type.
Task-number: QTBUG-57028
Change-Id: Ieb7105bff3043b845f76bc873d088e6bac1e4f10
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Diffstat (limited to 'src/plugins/sqldrivers/mysql')
-rw-r--r-- | src/plugins/sqldrivers/mysql/qsql_mysql.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/plugins/sqldrivers/mysql/qsql_mysql.cpp b/src/plugins/sqldrivers/mysql/qsql_mysql.cpp index 18c8b48462..9c6c3ff429 100644 --- a/src/plugins/sqldrivers/mysql/qsql_mysql.cpp +++ b/src/plugins/sqldrivers/mysql/qsql_mysql.cpp @@ -305,7 +305,9 @@ static QVariant::Type qDecodeMYSQLType(int mysqltype, uint flags) type = QVariant::Date; break; case FIELD_TYPE_TIME : - type = QVariant::Time; + // A time field can be within the range '-838:59:59' to '838:59:59' so + // use QString instead of QTime since QTime is limited to 24 hour clock + type = QVariant::String; break; case FIELD_TYPE_DATETIME : case FIELD_TYPE_TIMESTAMP : |