SQL Anywhere 数据库中的 QDateTime 插入和检索

QDateTime insertion and retrival in SQLAnywhere Database

我正在尝试在 SQLAnywhere16 数据库 Table 中存储和访问日期和时间。

Qt 中应该使用哪种数据类型,以便它可以用于我所有的 Qt 业务逻辑和 UI。我正在考虑使用 QDateTime,那么有助于在查询中插入日期时间并从查询结果转换回日期时间的函数是什么。

是的,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 列的类型为 DATETIMETIMESTAMP,以便可以正确转换值。

在此处阅读有关支持 Qt 的数据库系统的数据类型的更多信息: https://doc.qt.io/qt-5/sql-types.html