Fix sub-second handling in SQLite driver
Use explicit format string, that contains milliseconds, when converting an QDateTime/QTime to a SQLite field content. Task-number: QTBUG-24200 [ChangeLog][QtSql][QSQLITE] Fix sub-second handling Change-Id: Ib89152b7c3dd780b57a8826beff8b6b118e9d3d6 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> Reviewed-by: Mark Brand <mabrand@mabrand.nl>
This commit is contained in:
parent
7216387370
commit
9e64fc9e1c
@ -42,6 +42,7 @@
|
|||||||
#include "qsql_sqlite_p.h"
|
#include "qsql_sqlite_p.h"
|
||||||
|
|
||||||
#include <qcoreapplication.h>
|
#include <qcoreapplication.h>
|
||||||
|
#include <qdatetime.h>
|
||||||
#include <qvariant.h>
|
#include <qvariant.h>
|
||||||
#include <qsqlerror.h>
|
#include <qsqlerror.h>
|
||||||
#include <qsqlfield.h>
|
#include <qsqlfield.h>
|
||||||
@ -447,6 +448,20 @@ bool QSQLiteResult::exec()
|
|||||||
case QVariant::LongLong:
|
case QVariant::LongLong:
|
||||||
res = sqlite3_bind_int64(d->stmt, i + 1, value.toLongLong());
|
res = sqlite3_bind_int64(d->stmt, i + 1, value.toLongLong());
|
||||||
break;
|
break;
|
||||||
|
case QVariant::DateTime: {
|
||||||
|
const QDateTime dateTime = value.toDateTime();
|
||||||
|
const QString str = dateTime.toString(QStringLiteral("yyyy-MM-ddThh:mm:ss.zzz"));
|
||||||
|
res = sqlite3_bind_text16(d->stmt, i + 1, str.utf16(),
|
||||||
|
str.size() * sizeof(ushort), SQLITE_TRANSIENT);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case QVariant::Time: {
|
||||||
|
const QTime time = value.toTime();
|
||||||
|
const QString str = time.toString(QStringLiteral("hh:mm:ss.zzz"));
|
||||||
|
res = sqlite3_bind_text16(d->stmt, i + 1, str.utf16(),
|
||||||
|
str.size() * sizeof(ushort), SQLITE_TRANSIENT);
|
||||||
|
break;
|
||||||
|
}
|
||||||
case QVariant::String: {
|
case QVariant::String: {
|
||||||
// lifetime of string == lifetime of its qvariant
|
// lifetime of string == lifetime of its qvariant
|
||||||
const QString *str = static_cast<const QString*>(value.constData());
|
const QString *str = static_cast<const QString*>(value.constData());
|
||||||
|
Loading…
x
Reference in New Issue
Block a user