Qt QSqlQueryModel can';我无法从数据库中获取时间
我对QSqlQueryModel有问题,在我想从数据库中获取时间之前,它工作得很好。使用Firebird 2.5数据库Qt QSqlQueryModel can';我无法从数据库中获取时间,qt,qt5,firebird,Qt,Qt5,Firebird,我对QSqlQueryModel有问题,在我想从数据库中获取时间之前,它工作得很好。使用Firebird 2.5数据库 matchModel = new QSqlQueryModel(this); matchModel->setQuery("Select * from mecz"); ui->matchTableView->setModel(matchModel); ui->matchTableView->horizontalHeader()->set
matchModel = new QSqlQueryModel(this);
matchModel->setQuery("Select * from mecz");
ui->matchTableView->setModel(matchModel);
ui->matchTableView->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents);
ui->matchTableView->horizontalHeader()->setStretchLastSection(true);
我的数据库数据:
我的应用程序显示的内容:
当我运行这个代码时,qDebug()索引(0,4).data().toTime().toString()代码>我得到空值(“”
)
编辑:
我找到了一个暂时的解决办法。将查询更改为:
Select id, druzyna_gospodarz, druzyna_gosc, data_meczu, EXTRACT(HOUR from CAST(godzina_meczu as TIMESTAMP)) || ':' || IIF(CHAR_LENGTH(EXTRACT(MINUTE from CAST(godzina_meczu as TIMESTAMP)))>1,EXTRACT(MINUTE from CAST(godzina_meczu as TIMESTAMP)),'0' || EXTRACT(MINUTE from CAST(godzina_meczu as TIMESTAMP))) from mecz
临时解决办法。只需将查询更改为:
Select id, druzyna_gospodarz, druzyna_gosc, data_meczu, EXTRACT(HOUR from CAST(godzina_meczu as TIMESTAMP)) || ':' || IIF(CHAR_LENGTH(EXTRACT(MINUTE from CAST(godzina_meczu as TIMESTAMP)))>1,EXTRACT(MINUTE from CAST(godzina_meczu as TIMESTAMP)),'0' || EXTRACT(MINUTE from CAST(godzina_meczu as TIMESTAMP))) from mecz
这应该是正常的。尝试调用matchModel->lastError().text()
可能它会打印错误。它只打印空白的“
我在我的计算机上(使用SQLite)尝试了它,当我在数据库中键入01.01.2015
时,在表格视图中我也得到了01.01.2015
,但你得到了另一种格式,所以我认为你的代码不完整。如果是这样,请在此处发布完整的代码,可能对我或其他人有所帮助。@Simples表中“日期”字段的数据类型是什么,数据库设置的方言是什么。方言3 Db中的日期数据类型仅包含日期值部分,不包含时间部分。方言3 DB有一个单独的时间值数据类型“time”和一个保存日期和时间的“TIMESTAMP”。@Simples,在Select语句中尝试使用CAST(GODZINA_MECZU as time)。