• 5418阅读
  • 5回复

问下老大读取数据库后日期数据显示的问题 [复制链接]

上一主题 下一主题
离线bjiang
 

只看楼主 倒序阅读 楼主  发表于: 2006-08-18
看了你的“新新娘管理系统”,我用的是odbc数据库,我发现“顾客管理”栏里面的日期显示正确,如2006-08-09,而消费次数,显示的日期变成了如:2006-08-09T00:00:00,我自己在数据库表里直接写入数据,“顾客管理”的时期还是显示正确,消费次数的日期显示为上面所示。我现在在做一个系统,都是出现上面的问题,请问有怎么解决?
[ 此贴被XChinux在2006-08-18 17:10重新编辑 ]
离线XChinux

只看该作者 1楼 发表于: 2006-08-18
原来程序是直接显示数据库查询出来的数据的。
目前依你的情况看,可有两种解决方法:
1、修改SQL语句,在SQL语句中确定最后要显示的格式。
2、在sqlquerymodelconsumebottomleft.cpp这个文件中的
QVariant SqlQueryModelConsumeBottomLeft::data(const QModelIndex & index, int role) const
这个函数中对查询出来的结果进行处理,转变为你想要的格式
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线bjiang

只看该作者 2楼 发表于: 2006-08-18
QVariant SqlQueryModelCustomer::data(const QModelIndex & index, int role) const
{
   QVariant value = QSqlQueryModel::data(index, role);

   if (value.isValid() && role == Qt::DisplayRole && index.column() == 3)
   {
       value = (value.toInt() == 1 ? tr("男") : tr("女"));
       return value;
   }
   
   if (value.isValid() && role == Qt::DisplayRole && (index.column() == 2 || index.column() == 3))
   {
       value = "¥" + value.toString();
       return value;
   }

   if (role == Qt::TextAlignmentRole && index.column() > 1 && index.column() < 5)
   {
       value = (Qt::AlignVCenter + Qt::AlignRight);
       return value;
   }
   
   if (role == Qt::TextAlignmentRole && (index.column() == 2 || index.column() == 3 || index.column() == 6))
   {
       value = (Qt::AlignCenter);
       return value;
   }

   return value;
}

这是"顾客管理"对数据处理程序,这里是没有对日期的处理,而时期是显示正确,"消费次数"和这个差不多,显示不正确,有点糊涂,麻烦老大再指点1,2.
离线XChinux

只看该作者 3楼 发表于: 2006-08-18
简单地说,把数据取出来,用它来初始化Qt的日期时间类型对象,然后转化成需要的格式.
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线bjiang

只看该作者 4楼 发表于: 2006-08-19
再请问下用SQL语句自怎么实现,因为我用"select * from example where date='2005-9-8'",sql语句不能执行,在数据库是可以的,我要用日期为条件来选数据时,麻烦具体说说这个如何解决,多谢了!
离线XChinux

只看该作者 5楼 发表于: 2006-08-19
觉得这应该是由于使用的是ODBC的缘故吧。
我这里也没有环境,无法试验。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
快速回复
限100 字节
 
上一个 下一个