sql数据类型获取正确值的真正问题实际值为1.30,但我得到的是1.3

sql数据类型获取正确值的真正问题实际值为1.30,但我得到的是1.3,sql,Sql,在数据库中,我有数据类型real 当我尝试插入像1.30这样的值时,它会插入为1.3 我做的代码下面是代码 @abc工作良好 但是@abcd由于实际数据类型,它不起作用 declare @minutes as int set @minutes = 250 declare @abc as nvarchar(10) declare @abcd as real Set @abcd = Cast(rtrim(isnull(cast(nullif((@minutes / 60) , 0 ) as var

在数据库中,我有数据类型real 当我尝试插入像1.30这样的值时,它会插入为1.3 我做的代码下面是代码 @abc工作良好 但是@abcd由于实际数据类型,它不起作用

declare @minutes as int 
set @minutes = 250
declare @abc as nvarchar(10)
declare @abcd as real
Set @abcd = Cast(rtrim(isnull(cast(nullif((@minutes / 60) , 0 ) as varchar ) + '.' ,'' ) + isnull(CAST(nullif((@minutes % 60) ,0 ) AS VARCHAR(2) ) + '' ,'' ) ) as numeric(36,2)) 
Set @abc = Cast(rtrim(isnull(cast(nullif((@minutes / 60) , 0 ) as varchar ) + '.' ,'' ) + isnull(CAST(nullif((@minutes % 60) ,0 ) AS VARCHAR(2) ) + '' ,'' ) ) as numeric(36,2)) 
print @abcd
print @abc


4.1
4.10

我不明白问题是什么
real
是一种支持许多小数位的内部数据类型

如果需要固定的小数位数,则需要
数字
/
十进制
。比如:

declare @abcd numeric(10, 2);

这有两个小数位,您不应该得到小数点后一位的结果。

我得到的实数类型的结果是1.3,但我想要的是1.30谢谢您的回复,但在实数数据类型中,我想要的值是1。30@jimmydarji然后对精度说明符进行明显的调整。因为数字1.3和1.30是相同的。没什么区别。如果试图将时间存储为
HOURS.MINUTES
,则应使用字符串类型而不是数字类型。请注意,90分钟应变为
1.30
,63分钟应变为
1.03
。或者将其存储为两个值。