原創Sqlite+Qt4.5.3+QDateTime編寫程序
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));
無圖無真相
貼圖