gpt4 book ai didi

sql - ROUND 函数和算术溢出

转载 作者:行者123 更新时间:2023-12-05 00:41:29 25 4
gpt4 key购买 nike

在 MS SQL Server 中,如果我

SELECT ROUND(9.4, 0), ROUND(8.6, 0), ROUND(10.6, 0)

不出所料,我得到:

9.0 9.0 11.0

但如果我这样做了

SELECT ROUND(9.6, 0)

我明白了:

Msg 8115, Level 16, State 2, Line 1 Arithmetic overflow error converting expression to data type numeric.

我知道我可以CAST(9.6 as DECIMAL(10,0)),但是这里发生了什么?

TIA

最佳答案

SQL 将第一个参数作为数据类型,在本例中为 DECIMAL(2,1)。预期结果 10.0 应该是 DECIMAL(3,1) 类型,这就是您收到错误的原因。

试试:

SELECT ROUND(cast(9.6 as decimal(2,1)), 0)

然后试试:

SELECT ROUND(cast(9.6 as decimal(3,1)), 0)

关于sql - ROUND 函数和算术溢出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33835741/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com