请用Qt 写一段SQLlite 查询时间段内记录的代码
时间: 2023-12-14 13:37:25 浏览: 151
假设我们有一个名为 "record" 的表格,其中包含 "id"、"name"、"time" 字段,下面是使用 Qt 对 SQLite 数据库进行时间段查询的代码:
```c++
#include <QtSql>
int main(int argc, char *argv[])
{
// 创建 SQLite 数据库连接
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("record.db");
if (!db.open()) {
qDebug() << "Failed to open database.";
return -1;
}
// 设置查询时间段
QString startTime = "2022-01-01 00:00:00";
QString endTime = "2022-01-31 23:59:59";
// 构建 SQL 语句
QString sql = QString("SELECT * FROM record WHERE time BETWEEN '%1' AND '%2'").arg(startTime).arg(endTime);
// 执行查询
QSqlQuery query;
if (query.exec(sql)) {
while (query.next()) {
int id = query.value(0).toInt();
QString name = query.value(1).toString();
QString time = query.value(2).toString();
qDebug() << "id:" << id << "name:" << name << "time:" << time;
}
} else {
qDebug() << "Failed to execute query.";
}
db.close();
return 0;
}
```
以上代码中,我们使用 `QSqlDatabase` 类创建了一个 SQLite 数据库连接,并设置了要查询的时间段。接着,我们构建了一条 SQL 语句,使用 `BETWEEN` 操作符查询符合时间段条件的记录。最后,我们使用 `QSqlQuery` 类执行查询,并遍历结果集输出查询结果。
需要注意的是,时间格式要与数据库中存储的时间格式一致。如果存储格式为 Unix 时间戳,需要将查询时间段转换为对应的时间戳。
阅读全文