QSqlDatabase 建立数据库表,字段为本地时间
时间: 2024-03-08 11:49:25 浏览: 185
在使用QSqlDatabase类建立数据库表时,可以通过在CREATE TABLE语句中指定字段类型为datetime来创建日期时间类型的字段。下面是一个示例代码,展示如何在QSqlDatabase中创建一个包含本地时间字段的数据表:
```cpp
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("my_database.db");
if (!db.open()) {
qDebug() << "Failed to open database.";
return;
}
QSqlQuery query;
query.exec("CREATE TABLE my_table (id INTEGER PRIMARY KEY, datetime TEXT)");
```
在上面的代码中,我们首先使用QSqlDatabase类打开名为my_database.db的SQLite数据库,然后使用QSqlQuery类执行CREATE TABLE语句,该语句创建了一个名为my_table的数据表,包含一个名为datetime的本地时间类型的字段。
在向my_table表中插入数据时,需要将本地时间转换为字符串类型,然后插入到datetime字段中。下面是一个示例代码,展示如何向my_table表中插入数据:
```cpp
QSqlQuery query;
QDateTime dateTime = QDateTime::currentDateTime();
QString dateString = dateTime.toString("yyyy-MM-dd hh:mm:ss.zzz");
query.prepare("INSERT INTO my_table (datetime) VALUES (:datetime)");
query.bindValue(":datetime", dateString);
query.exec();
```
在上面的代码中,我们首先获取当前的本地时间,然后使用toString函数将其转换为字符串类型。接着,使用QSqlQuery类执行一个INSERT INTO语句,将转换后的字符串插入到my_table表的datetime字段中。注意,我们使用bindValue函数将datetime字段值绑定到了一个占位符“:datetime”上,这样可以防止SQL注入攻击。
阅读全文