Sqlite+Qt4.5.3+QDateTime
Qt 的 sqlite 数据库中存入时间的文章并不多, 自己在做项目的 过程
中也正好遇到了这个问题,一位很难搞定,小人不才,弄了弄,竟然弄好了,特 此
和大家分享过程, sqlite 数据库建表的话,如果在 dos 界面下手敲的话,可能 会累死
你,你可以去下一个 sqlite 的图示管理工具 sqliteadmin. ,搜一下就出来了, 当然
在 linux 好像有可视话的工具, 如果没找到 linux 下的, 你也可以用 sqliteadmin 建好表,
在 linux 下直接用也可以,如果熟悉的 sqlite 的话,你应该知道关于时间的数 据格式
在 sqlite 里有 Date 和 time, 不用解释,我想应该很清楚,
所以
,如果做时间的数据库,你必须添加这两个字段,
从数据方面讲,可以分为插入和读取两个方面,
先看一下插入的过程
贴代码
mywidgetquery->exec(QString("INSERTINTOyingyebase (YYALLMoney,YYDate,YYTime,YYPayType)VALUES(%1,'%2','%3','%4');") .arg(yymoney) .arg(QDateTime::currentDateTime().date().toString("yyyy-MM-dd")) .arg(QDateTime::currentDateTime().time().toString("hh:mm:ss")) .arg(tr("RMB 方式 ")) ); 我的表的 YYData 和 YYTime 就是分别表示日期和时间。
QDataTime::currentDataTime() 先获得日期时间, toString("yyyy-MM-dd") , 相 当于格式化
时间字符串,
读取的过程的话
使用 QSqlQueryMolel 或者 QSqlTableModel 然后在 View 中绑定一下,就可以在 View 看到日期和时间了
贴代码:
myy=newQSqlTableModel(this); myy->setTable("yingyebase"); myy->setSort(YYID,Qt::AscendingOrder); myy->setHeaderData(YYALLMoney,Qt::Horizontal,tr(" 消费金额 ")); myy->setHeaderData(YYDate,tr(" 消费日期 ")); myy->setHeaderData(YYTime,tr(" 结账时间 ")); myy->setHeaderData(YYPayType,tr(" 付款方式 ")); myy->setFilter(""); myy->select(); ui->tableView->setModel(myy); ui->tableView->setColumnHidden(YYID,true); ui->tableView->resizeColumnsToContents(); ui->tableView->setEditTriggers(QAbstractItemView::NoEditTriggers); QHeaderView*yyheader=ui->tableView->horizontalHeader(); yyheader->setStretchLastSection(true); ui->tableView->setCurrentIndex(myy->index(myy->rowCount()-1,0)); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |