http://hi.baidu.com/armlinuxhouse/blog/item/8e028897c8aae847d0135e4c.html
看了看网上关于Qt的sqlite数据库中存入时间的文章并不多,自己在做项目的过程
中也正好遇到了这个问题,一位很难搞定,小人不才,弄了弄,竟然弄好了,特此
和大家分享过程,sqlite 数据库建表的话,如果在dos界面下手敲的话,可能会累死
你,你可以去下一个sqlite的图示管理工具sqliteadmin.,搜一下就出来了,当然
在linux好像有可视话的工具,如果没找到linux下的,你也可以用sqliteadmin建好表,
在linux下直接用也可以,如果熟悉的sqlite的话,你应该知道关于时间的数据格式
在sqlite里有Date和time,不用解释,我想应该很清楚,
所以 ,如果做时间的数据库,你必须添加这两个字段,
从数据方面讲,可以分为插入和读取两个方面,
先看一下插入的过程
贴代码
mywidgetquery->exec(QString("INSERT INTO yingyebase (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=new QSqlTableModel(this);
myy->setTable("yingyebase");
myy->setSort(YYID,Qt::AscendingOrder);
myy->setHeaderData(YYALLMoney,Qt::Horizontal,tr("消费金额"));
myy->setHeaderData(YYDate,Qt::Horizontal,tr("消费日期"));
myy->setHeaderData(YYTime,Qt::Horizontal,tr("结账时间"));
myy->setHeaderData(YYPayType,Qt::Horizontal,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));
无图无真相
贴图