求帮助额~~~qsqltablemodel中使用setfilter查询qdate类型数据

时间:2020-12-24 02:33:18
我的数据库是mysql,数据表中有一列rentdate为date类型的数据。我使用qsqltablemodel来对这张表进行操作,想使用setfilter来对rentdate这一列中所有日期为某一天的数据进行筛选,并且这个日期是一个变量,是从qdateedit控件中的得到的,该怎么做啊~~求大侠帮助~~~

网上只有对字符串数据类型进行操作的   
 model->setFilter(QObject::tr("name = '%1'").arg(name)); //根据姓名进行筛选
    model->select(); //显示结果

但我的是一个date类型的变量应该怎么办呢?? 求帮忙啊~~~~

2 个解决方案

#1


 QString datetime_from=ui->dateTimeEdit->text();
 QString datetime_to=ui->dateTimeEdit_2->text();
model->setFilter(QString("time > %1 and time < %2").arg(datetime_from).arg(datetime_to));
这要看你mysql中存储的date类型,然后将dateTimeEdit的显示类型转化为mysql中时间的形式,如mysql中datetime类型为20110827193246, 那你就将datetime的显示类型变为 ui->dateTimeEdit->setDisplayFormat("yyyyMMddhhmmss");
这样就可以了,可以的。

#2


引用 1 楼  的回复:
 QString datetime_from=ui->dateTimeEdit->text();
 QString datetime_to=ui->dateTimeEdit_2->text();
model->setFilter(QString("time > %1 and time < %2").arg(datetime_from).arg(datetime_to));
这要看你mysq……


两个问题
一是我在界面上加了dateedit控件后,在cpp文件里写ui->的时候系统不能自动识别出来有这个控件
二是我这么写的
QString datetime_from=ui->dateEdit_find->setDisplayFormat("yyyymmdd");
系统报错
conversion from 'void' to non-scalar type 'QString' requested

T_T

#1


 QString datetime_from=ui->dateTimeEdit->text();
 QString datetime_to=ui->dateTimeEdit_2->text();
model->setFilter(QString("time > %1 and time < %2").arg(datetime_from).arg(datetime_to));
这要看你mysql中存储的date类型,然后将dateTimeEdit的显示类型转化为mysql中时间的形式,如mysql中datetime类型为20110827193246, 那你就将datetime的显示类型变为 ui->dateTimeEdit->setDisplayFormat("yyyyMMddhhmmss");
这样就可以了,可以的。

#2


引用 1 楼  的回复:
 QString datetime_from=ui->dateTimeEdit->text();
 QString datetime_to=ui->dateTimeEdit_2->text();
model->setFilter(QString("time > %1 and time < %2").arg(datetime_from).arg(datetime_to));
这要看你mysq……


两个问题
一是我在界面上加了dateedit控件后,在cpp文件里写ui->的时候系统不能自动识别出来有这个控件
二是我这么写的
QString datetime_from=ui->dateEdit_find->setDisplayFormat("yyyymmdd");
系统报错
conversion from 'void' to non-scalar type 'QString' requested

T_T