Qt QSqlQueryModel can';我无法从数据库中获取时间

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

我对QSqlQueryModel有问题,在我想从数据库中获取时间之前,它工作得很好。使用Firebird 2.5数据库

 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)。