【发布时间】:2012-09-27 04:15:00
【问题描述】:
我是这样写存储过程的
Declare @sum varchar(50)
Set @sum = (select SUM(ct.WorkingHours)
from ConsultantTimeSheet ct
where ConsultantID = @Consultantid
and ct.Status = @status
and ct.StartDate = @StartDate
and ct.EndDate = @Enddate
group by ConsultantID)
现在我得到了像33.90 这样的总和,但我必须显示34.30,如何转换这种格式分钟超过 60 加上小时。
【问题讨论】:
-
你是怎么得到 33.90 的?那是一个十进制字段吗?
-
varchar 字段声明@sum varchar(50)
-
什么是 WorkingHours 数据类型?
-
WHY 是
@sum一个varchar(50)变量,如果您打算在其中存储一个数值?应该是decimal- 即使float也是一个糟糕的选择(舍入错误!) -
小数有时效果不佳。请记住,一小时内有 60 分钟,而不是 100 分钟,而且它们并不总是能很好地转换。
标签: sql sql-server sql-server-2008 stored-procedures time