有两个日期控件Qdatetime控件 .在控件中选择开始日期和和结束日期 ,来更新model. 数据库中的日期我转化为QString形式了 .怎样在filter中设置.我把两个QDatetime中的时间转化成字符串比较大小一直不行. 表中字段为date
date中时间的格式是 QString date = ui->de_record->dateTime().toString("yyyy-MM-dd hh:mm:ss");
开始时间 m_starttime = ui->datetime_start->dateTime().toString("yyyy-MM-dd hh:mm:ss");
结束时间 m_endtime = ui->datetime_end->dateTime().toString("yyyy-MM-dd hh:mm:ss");
model.setfilter( tr(date "between %1 and %2").arg(开始时间).arg(结束时间))
用这个条件更新模型的时候一直出错.
也试了setfilter( date >%1 and date %2)
.
我觉得是数据存储的格式或者转换过程中出错了 .
date中时间的格式是 QString date = ui->de_record->dateTime().toString("yyyy-MM-dd hh:mm:ss");
开始时间 m_starttime = ui->datetime_start->dateTime().toString("yyyy-MM-dd hh:mm:ss");
结束时间 m_endtime = ui->datetime_end->dateTime().toString("yyyy-MM-dd hh:mm:ss");
model.setfilter( tr(date "between %1 and %2").arg(开始时间).arg(结束时间))
用这个条件更新模型的时候一直出错.
也试了setfilter( date >%1 and date %2)
.
我觉得是数据存储的格式或者转换过程中出错了 .
可是sqllite中貌似没有日期数据类型.
解决方法:
主要是没有用到""双引号的转义
select * from record where date between "2012-06-14 00:35:50 " and "2012-06-21 00:35"
正确的句子是 在使用%1的时候 要用 /"%1 "/