【发布时间】:2021-01-01 12:24:32
【问题描述】:
我在myTable 中有一个int 类型的列Column1,其值为25。
将cast(Column1 as decimal)/100 插入到临时表#tempTbl 中时,如下所示
create table #tempTbl
(
Column1 decimal
)
Insert into #tempTbl
select cast(Column1 as decimal)/100
from myTable
我在临时表的 Column1 中看到 0 而不是 0.25
当我尝试select cast(25 as decimal)/100 时,我得到 0.25
我做错了什么?
【问题讨论】:
-
用您正在使用的数据库标记您的问题。
-
目标表的数据类型是什么?
decimal没有精确度,您的 DBMS 可能默认没有小数位,即decimal(??,0) -
目标临时表的数据类型为十进制。我将其更改为十进制(6,3)并且它有效
-
decimal不是数据类型,它需要 precision 和 scale,例如在 SQL Server 中,默认精度为 18,默认小数位数 0