我试图在SQL Server中找出一列的十进制数据类型。我需要能够存储像15.5,26.9,24.7,9.8等值
我将decimal(18,0)赋值给列数据类型,但这不允许我存储这些值。
正确的做法是什么?
我试图在SQL Server中找出一列的十进制数据类型。我需要能够存储像15.5,26.9,24.7,9.8等值
我将decimal(18,0)赋值给列数据类型,但这不允许我存储这些值。
正确的做法是什么?
当前回答
request.input("name", sql.Decimal, 155.33) // decimal(18, 0)
request.input("name", sql.Decimal(10), 155.33) // decimal(10, 0)
request.input("name", sql.Decimal(10, 2), 155.33) // decimal(10, 2)
其他回答
DECIMAL(18,0)允许小数点后面有0位数字。
使用DECIMAL(18,4)之类的东西来代替,这样就可以了!
总共有18位,其中小数点后4位(小数点前14位)。
你应该这样使用is:
DECIMAL(m,a)
M是小数的总位数。
A是小数点后的最大位数。
http://www.tsqltutorials.com/datatypes.php有所有数据类型的描述。
request.input("name", sql.Decimal, 155.33) // decimal(18, 0)
request.input("name", sql.Decimal(10), 155.33) // decimal(10, 0)
request.input("name", sql.Decimal(10, 2), 155.33) // decimal(10, 2)
在MySQL DB中十进制(4,2)只允许输入总共4位数字。正如您在decimal(4,2)中看到的,这意味着您可以总共输入4位数字,其中两位数字意味着要保留在小数点之后。
因此,如果您在MySQL数据库中输入100.0,它将显示一个错误,如“列的值超出范围”。
所以,你只能输入这个范围:从00.00到99.99。
你可以试试这个
decimal(18,1)
数字的长度应该是18。小数点后的数字长度只能是1,不能超过1。