我首先尝试使用该ROUND函数将我的数据从float转换为int .我将float数据舍入为整数,这很好.
我接下来试图将浮点数据从1列(totexunits)插入到另一列int(Units).我收到以下消息:
Msg 232, Level 16, State 3, Line 1
Arithmetic overflow error for type int, value = 5726577093.000000.
Run Code Online (Sandbox Code Playgroud)
我用过这个sql:
update wkimport2 set units = CONVERT(int, totexunits)
Run Code Online (Sandbox Code Playgroud)
我不知道最近发生了什么.我检查了数据库中的那个数字,它确实显示了任何小数位,但它的行为就像有一些小数位.任何人都知道如何从列totexunits填充单位列?我被卡住了.
相反CAST或Convert到BIGINT,因为你的号码是大的INT.请参见int,bigint,smallint和tinyint
BIGINT
整数(整数)数据从-2 ^ 63(-9,223,372,036,854,775,808)到2 ^ 63-1(9,223,372,036,854,775,807).存储大小为8个字节.
INT
从-2 ^ 31(-2,147,483,648)到2 ^ 31 - 1(2,147,483,647)的整数(整数)数据.存储大小为4个字节.int的SQL-92同义词是整数.