SQL舍入到7位,即使它设置为十进制(18,4))

时间:2012-12-07 14:01:23

标签: sql-server-2005 rounding

select (cast(datediff(minute,'1900-01-01 07:03:00.000' ,'1900-01-01 10:35:00.000')

as decimal(18,4))/60)

即使小数位设置为4,它也会返回 3.5333333 代替 3.5333

请帮我退回3.5333(小数点后4位)

http://sqlfiddle.com/#!3/1fa93/4119/0

2 个答案:

答案 0 :(得分:4)

将/ 60放在演员表中并将其更改为60.0以获得小数。

select (cast(datediff(minute,'1900-01-01 07:03:00.000' ,'1900-01-01 10:35:00.000')/60.0

as decimal(18,4)))

答案 1 :(得分:1)

你需要在施法前进行划分:

select 
   cast(datediff(minute, '1900-01-01 07:03:00.000', '1900-01-01 10:35:00.000') / 60.0 
        as decimal(18,4))

然后你得到:

3.5333

转换为decimal(18,4)然后通过60种“无效”格式化进行除法 - SQL Server将再次显示该除法的所有数字精度为... < / p>