0
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

4

2 回答 2

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)))
于 2012-12-07T14:04:57.633 回答
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 将再次显示除以 60 的所有数字精度......

于 2012-12-07T14:05:58.513 回答