MSSQL数据库怎么存0.6类的小数字?
我现在用的是int类型,发现存贮不了小数点数字,只能存整数,应该换什么类型呢?还是另外设置下什么参数?
答案:float,double
其他:float is ok decimal用于表示定点实数,具体使用格式为: decimal[(p[,s])],其中p表示精度,用于指定小数点左边和右边十进制数字的最大位数,取值在1-38之间,缺省值为18,s指定小数点右边十进制数的最大位数,取值在0-p之间缺省值为0(此时小数点后面没有小数位,所有输入的小数位都会被自动四舍五入)。
故而定义了一个decimal类型的变量的时候,要注意这个否则就会发生越界的情况。
比如定义了一个字段aa decimal(4,3)这个时候要再在存储过程中使用变量@aa decimal操纵插入数据的时候,如果给@aa赋值的时候,如果赋值大于9.499就会产生溢出错误。 bigint
整数数据,从 –2^63 (–9,223,372,036,854,775,808) 到 2^63–1 (9,223,372,036,854,775,807)。存储大小为 8 字节。
integer
整数数据,从 –2^31 (-2,147,483,648) 到 2^31–1 (2,147,483,647)。
存储大小为 4 字节。
smallint
整数数据,从 –32,768 到 32,767。存储大小为 2 字节。
tinyint
整数数据,从 0 到 255。存储大小为 1 字节。
bit
整数数据,值为 1 或 0。
存储大小为 1 位。
numeric (p, s)
固定精度和小数的数字数据,取值范围从 –10^38+1 到 10^38–1。p 变量指定精度,取值范围从 1 到 38。s 变量指定小数位数,取值范围从 0 到 p。
存储大小为 19 字节。
money
货币数据值,从 (–2^63/10000) (–922,337,203,685,477.5808) 到 2^63–1 (922,337,203,685,477.5807),准确度为货币单位的万分之一。存储大小为 8 字节。
float
浮点数数据,从 –1.79E +308 到 1.79E+308
存储大小为 8 字节。
real
浮点精度数字数据,从 –3.40E+38 到 3.40E+38。
存储大小为 4 字节。
datetime
日期和时间数据,从 1753 年 1 月 1 日到 9999 年 12 月 31 日,准确度为三百分之一秒或 3.33 毫秒。值被圆整到 .000、.003 或 .007 毫秒增量。
存储为两个 4 字节整数。前 4 个字节存储早于或晚于基日期 1900 年 1 月 1 日的天数。基日期是系统的参照日期。不允许 datetime 的值早于 1753 年 1 月 1 日。后 4 个字节存储一天之中的具体时间,被表示为从午夜算起的毫秒数。秒数的有效范围是 0–59。
national character(n)
Synonym:nchar(n)
固定长度的 Unicode 数据,最大长度为 4000 个字符。默认长度 = 1。存储大小(以字节计)是输入的字符数的两倍。
national character varying(n)
Synonym:nvarchar(n)
可变长度的 Unicode 数据,长度值范围为从 1 到 4000 个字符。默认长度 = 1。存储大小(以字节计)是输入的字符数的两倍。
ntext
可变长度的 Unicode 数据,最大长度为 (2^30–2)/2 (536,870,911) 个字符。存储大小(以字节计)是输入的字符数的两倍。
注意:
字符串函数中不再支持 ntext。
binary(n)
固定长度的二进制数据,最大长度为 8000 字节。默认长度 = 1。
存储大小是固定的,是在类型中声明的以字节为单位的长度。
varbinary(n)
可变长度的二进制数据,最大长度为 8000 字节。默认长度 = 1。
存储大小可变。它表示值的长度(以字节为单位)。
image
可变长度的二进制数据,最大长度为 2^30–1 (1,073,741,823) 字节。
存储大小是值的以字节为单位的长度。
uniqueidentifier
全局唯一标识符 (GUID)。存储大小为 16 字节。
IDENTITY [(s, i)]
这是数据列的一个属性,而不是一个独特的数据类型。
只有整数数据类型的数据列可用于标识列。一个表只能有一个标识列。可以指定种子和增量,但不能更新列。
s (seed) = 起始值
i(increment) = 增量值
ROWGUIDCOL
这是数据列的一个属性,而不是一个独特的数据类型。它是一个表中使用 uniqueidentifier 数据类型定义的列。一个表只能有一个 ROWGUIDCOL 列。
F1才是最牛的 decimal(10,6)
上一个:MSSQL中如何用SQL语句为字段增加不为空的约束
下一个:MSSQL 连接不到本机