遇到一个非常奇怪的问题,我试图把问题的描述的清楚些,急寻高手帮忙,语句已经写好了,需要指点一下
select a.name,ltrim(sum(datediff(minute,StartProcessDate,EndProcessDate))/60)
+ '. '+
ltrim(sum(datediff(minute,StartProcessDate,EndProcessDate))%60) as score
from T_Question b,T_QuestionType a
where a.id=b.qtid group by a.name
having sum(datediff(hour,StartProcessDate,EndProcessDate))/60 <> 0
首先把取到的(满足条件的时间区间)相加,得到所有时间的总和(也就是所有的分钟)
接着除以60得到一个整数
在加个点号
在接着对这个时间取余数
打个比方,一共取到122分钟,那么122先/60得到2,在加点号,然后122在取余数%60,得到2,最后格式是2.2,起码 "结果格式 "是正确的
SQL查询结果
name sorce
1 BUG问题 114.7
2 领取不到 75.20
3 投诉客服 94.58
---------------------------------
那么问题来了,这个结果应该算是字符串型还是float型???
程序中对取到的结果进行绑定
p.SetValueXY(reader[ "pid "], reader[ "score "]);
注意reader这里接收的int和string类型,我试了半天也绑定不上
界面结果要显示成小时分钟,而绑定时又要求INT或STRING(这不是我写的函数,是第三方控件,所以我改不了函数参数类型),取到的结果又不知道什么类型,求高手解答.
分少点,狂谢了
------解决方案--------------------name 字符
score 字符