我尝试使用 SQL POWER 函数
SELECT POWER(2, 32)
Run Code Online (Sandbox Code Playgroud)
它返回了这个错误
消息 232,级别 16,状态 3,第 21 行
int 类型的算术溢出错误,值 = 4294967296.000000。
为什么会抛出这个错误,我该如何解决?
该2中SELECT POWER(2, 32)是一个int,而最大的价值int能够存储为2,147,483,647。4,294,967,296 太大了。
将您的转换int为bigint.
SELECT POWER(CONVERT(bigint,2), 32);
Run Code Online (Sandbox Code Playgroud)
返回类型取决于float_expression的输入类型:
Run Code Online (Sandbox Code Playgroud)Input type |Return type ----------------------------------------|-------------- float, real |float decimal(p, s) |decimal(38, s) int, smallint, tinyint |int bigint |bigint money, smallmoney |money bit, char, nchar, varchar, nvarchar |float