When you divide by 60, you are using integer math, which does not produce decimal results.To get decimal results, you need to divide by a decimal number.select HoursFromMinutesDiff = convert(numeric(6,2),round(datediff(mi,0,D2-D1)/60.0000,2)), HoursFromSecondsDiff = convert(numeric(6,2),round(datediff(ss,0,D2-D1)/3600.0000,2)), HoursFromMillisecondsDiff = convert(numeric(6,2),round(datediff(ms,0,D2-D1)/3600000.0000,2)), a.*from ( -- Test Data select D1 = convert(datetime,'20110510 14:43:59.993'), D2 =getdate() ) aHoursFromMinutesDiff HoursFromSecondsDiff HoursFromMillisecondsDiff D1 D2-------------------- -------------------- ------------------------- ----------------------- ----------------------- 45.87 45.88 45.88 2011-05-10 14:43:59.993 2011-05-12 12:36:34.227
CODO ERGO SUM