Вставка и извлечение QDateTime в базе данных SQLAnywhere - PullRequest
1 голос
/ 06 марта 2019

Я пытаюсь сохранить и получить доступ к дате и времени в таблице, которая является базой данных SQLAnywhere16.

Какой тип данных должен использоваться в Qt, чтобы его можно было использовать для всей моей бизнес-логики и пользовательского интерфейса Qt. Я думаю использовать QDateTime, так что же это за функция, которая поможет вставить дату и время в Query и конвертировать обратно в дату и время из результата Query.

1 Ответ

0 голосов
/ 07 марта 2019

Да, QDateTime очень совместим с QtSql, с ним очень легко работать. Вот код для вставки и выделения:

// SELECT
QSqlQuery querySelect;
if (!querySelect.exec("SELECT datetime FROM author"))
{
    //handle error        
}
while (querySelect.next()) 
{
    QDateTime dateTime = querySelect.value(0).toDateTime();
    doSomething(dateTime);
}

// INSERT
QSqlQuery queryInsert;
if (!queryInsert.prepare("INSERT INTO author (datetime) VALUES (:dateTime)"))
{
    //handle error
}
QDateTime dateTime = QDateTime::currentDateTime();
queryInsert.bindValue(":dateTime", dateTime);

if (!queryInsert.exec())
{
    //handle error        
}

Убедитесь, что столбец SQL имеет тип DATETIME или TIMESTAMP, чтобы его можно было правильно преобразовать.

Подробнее о типах данных для поддерживаемых Qt систем баз данных здесь: https://doc.qt.io/qt-5/sql-types.html

...