declare @alpha float
declare @tmp int
set @tmp = 6
set @alpha = 1/@tmp
select @alpha
>> Here @alpha is echoed as 0
declare @tmp1 float
set @tmp1 = 6
set @alpha = 1/@tmp1
select @alpha
>> Here @alpha is echoed as 0.1666666
如果它至少发出警告但编译器也没有发出任何警告,我会很好。或者是否有用于此类转换操作的编译器设置以自动将其转换为所需的转换。
我的意思是将 int 转换为 float 并不难,反之亦然是我的理由。另一个合乎逻辑的问题是,如果它不允许将日期变量转换为varchar
变量,为什么它应该允许int
并float
最终给出不希望的结果。