sql server中的decimal或者numeric的精度问题

何谓精度:最多可以存储的十进制数字的总位数,包括小数点左边和右边的位数。该精度必须是从 1 到最大精度 38 之间的值。默认精度为 18。

小数位数:小数点右边可以存储的十进制数字的最大位数。小数位数必须是从 0 到 p 之间的值。仅在指定精度后才可以指定小数位数。默认的小数位数为 0;因此,0 <= s <= p。最大存储大小基于精度而变化。

在c sharp中调用传递SqlParameter参数时也需要制定参数的精度和小数的位数,如下面的例子声明一个精度为18小树位数为2的decimal类型参数:

复制代码 代码如下:

SqlParameter parm = new SqlParameter("@parmName", SqlDbType.Decimal);

parm.Precision = 18;

parm.Scale = 2;

时间: 2024-09-16 07:32:53

sql server中的decimal或者numeric的精度问题的相关文章

sql server中的decimal或者numeric的精度问题_MsSql

何谓精度:最多可以存储的十进制数字的总位数,包括小数点左边和右边的位数.该精度必须是从 1 到最大精度 38 之间的值.默认精度为 18. 小数位数:小数点右边可以存储的十进制数字的最大位数.小数位数必须是从 0 到 p 之间的值.仅在指定精度后才可以指定小数位数.默认的小数位数为 0:因此,0 <= s <= p.最大存储大小基于精度而变化. 在c sharp中调用传递SqlParameter参数时也需要制定参数的精度和小数的位数,如下面的例子声明一个精度为18小树位数为2的decimal类

分清SQL Server中易混淆的数据类型

server|数据|数据类型 (1)char.varchar.text和nchar.nvarchar.ntextchar和varchar的长度都在1到8000之间,它们的区别在于char是定长字符数据,而varchar是变长字符数据.所谓定长就是长度固定的,当输入的数据长度没有达到指定的长度时将自动以英文空格在其后面填充,使长度达到相应的长度:而变长字符数据则不会以空格填充.text存储可变长度的非Unicode数据,最大长度为2^31-1(2,147,483,647)个字符.后面三种数据类型和

漫谈SQL Server中的标识列(一)

server 漫谈SQL Server中的标识列(一) 一.标识列的定义以及特点 SQL Server中的标识列又称标识符列,习惯上又叫自增列.该种列具有以下三种特点: 1.列的数据类型为不带小数的数值类型2.在进行插入(Insert)操作时,该列的值是由系统按一定规律生成,不允许空值3.列值不重复,具有标识表中每一行的作用,每个表只能有一个标识列. 由于以上特点,使得标识列在数据库的设计中得到广泛的使用. 二.标识列的组成创建一个标识列,通常要指定三个内容:1.类型(type)在SQL Ser

SQL Server 中易混淆的数据类型

server|数据|数据类型 (1)char.varchar.text和nchar.nvarchar.ntextchar和varchar的长度都在1到8000之间,它们的区别在于char是定长字符数据,而varchar是变长字符数据.所谓定长就是长度固定的,当输入的数据长度没有达到指定的长度时将自动以英文空格在其后面填充,使长度达到相应的长度:而变长字符数据则不会以空格填充.text存储可变长度的非Unicode数据,最大长度为2^31-1(2,147,483,647)个字符. 后面三种数据类型

SQL SERVER中易混淆的数据类型

server|数据|数据类型 (1)char.varchar.text和nchar.nvarchar.ntextchar和varchar的长度都在1到8000之间,它们的区别在于char是定长字符数据,而varchar是变长字符数据.所谓定长就是长度固定的,当输入的数据长度没有达到指定的长度时将自动以英文空格在其后面填充,使长度达到相应的长度:而变长字符数据则不会以空格填充.text存储可变长度的非Unicode数据,最大长度为2^31-1(2,147,483,647)个字符. 后面三种数据类型

SQL Server中容易混淆的数据类型

(1)char.varchar.text和nchar.nvarchar.ntext char和varchar的长度都在1到8000之间,它们的区别在于char是定长字符数据,而varchar是变长字符数据.所谓定长就是长度固定的,当输入的数据长度没有达到指定的长度时将自动以英文空格在其后面填充,使长度达到相应的长度:而变长字符数据则不会以空格填充.text存储可变长度的非Unicode数据,最大长度为2^31-1(2,147,483,647)个字符. 后面三种数据类型和前面的相比,从名称上看只是

SQL Server中数据行批量插入脚本的存储实现_MsSql

无意中看到朋友写的一篇文章"将表里的数据批量生成INSERT语句的存储过程的实现".我仔细看文中的两个存储代码,自我感觉两个都不太满意,都是生成的单行模式的插入,数据行稍微大些性能会受影响的.所在公司本来就存在第二个版本的类似实现,但是是基于多行模式的,还是需要手工添加UNAION ALL来满足多行模式的插入.看到这篇博文和基于公司数据行批量脚本的存储的缺点,这次改写和增强该存储的功能.    本存储运行于SQL Server 2005或以上版本,T-SQL代码如下: IF OBJEC

SQL Server中数据行批量插入脚本的存储实现

无意中看到朋友写的一篇文章"将表里的数据批量生成INSERT语句的存储过程的实现".我仔细看文中的两个存储代码,自我感觉两个都不太满意,都是生成的单行模式的插入,数据行稍微大些性能会受影响的.所在公司本来就存在第二个版本的类似实现,但是是基于多行模式的,还是需要手工添加UNAION ALL来满足多行模式的插入.看到这篇博文和基于公司数据行批量脚本的存储的缺点,这次改写和增强该存储的功能. 本存储运行于SQL Server 2005或以上版本,T-SQL代码如下: IF OBJECT_I

Sql Server中如何Float格式转换字符串varchar

SELECT CONVERT(varchar(100), CAST(@testFloat AS decimal(38,2))) SELECT STR(@testFloat, 38, 2) 从Excel中导入到sql2000,有一列"联系方式"变成了float类型,我想转换成nvarchar类型,用下面的语句 select convert(nvarchar(30),convert(int,联系方式)) from employee go //数据溢出,不行! select convert(