sql语句decimal,sql语句decimal求和

http://www.itjxue.com  2023-01-20 01:09  来源:未知  点击次数: 

我想问下SQL里的decimal是什么函数?

decimal 只是一个数据类型 例如 decimal(10,5); 表示 最大可以是10位数 小数点后保留5位小数

为什么SQL中定义了decimal和numeric两个等价类型

decimal(numeric ) 同义,用于精确存储数值 decimal 数据类型最多可存储 38 个数字,所有数字都能够放到小数点的右边。decimal 数据类型存储了一个准确(精确)的数字表达法;不存储值的近似值。 定义 decimal 的列、变量和参数的两种特性如下: p 小数点左边和右边数字之和,不包括小数点。如 123.45,则 p=5,s=2。 指定精度或对象能够控制的数字个数。 s 指定可放到小数点右边的小数位数或数字个数。 p 和 s 必须遵守以下规则:0 = s = p = 38。 numeric 和 decimal 数据类型的默认最大精度值是 38。在 Transact-SQL 中,numeric 与 decimal 数据类型在功能上等效。 当数据值一定要按照指定精确存储时,可以用带有小数的 decimal 数据类型来存储数字。 转换 decimal 和 numeric 数据 对于 decimal 和 numeric 数据类型,Microsoft? SQL Server? 将精度和小数位数的每个特定组合看作是不同的数据类型。例如,decimal(5,5) 和 decimal(5,0) 被当作不同的数据类型。 在 Transact-SQL 语句中,带有小数点的常量自动转换为 numeric 数据值,且必然使用最小的精度和小数位数。例如,常量 12.345 被转换为 numeric 值,其精度为 5,小数位为 3。 从 decimal 或 numeric 向 float 或 real 转换会导致精度损失。从 int、smallint、tinyint、float、real、money 或 smallmoney 向 decimal 或 numeric 转换会导致溢出。 默认情况下,在将数字转换为较低精度和小数位数的 decimal 或 numeric 值时,SQL Server 使用舍入法。然而,如果 SET ARITHABORT 选项为 ON,当发生溢出时,SQL Server 会出现错误。若仅损失精度和小数位数,则不会产生错误。

sql语句 decimal(18,0)什么意思

decimal(18,0),数值中共有18位数,其中整数占18位,小数占0位。Decimal(n,m)表示数值中共有n位数,其中整数n-m位,小数m位。

例:decimal(2,1),此时,插入数据“12.3”、“12”等会出现“数据溢出错误”的异常;插入“1.23”或“1.2345...”会自动四舍五入成“1.2”;插入“2”会自动补成“2.0”,以确保2位的有效长度,其中包含1位小数。

当用 int类型会有溢出时,可以用 decimal 类型进行处理,把结果可以用 convert 或是 cast 进行转换。

扩展资料:

Decimal 数据类型Decimal 变量存储为 96 位(12 个字节)无符号的整型形式,并除以一个 10 的幂数。这个变比因子决定了小数点右面的数字位数,其范围从 0 到 28。变比因子为 0(没有小数位)的情形下,最大的可能值为 +/-79,228,162,514,264,337,593,543,950,335。

在有 28 个小数位的情况下,最大值为 +/-7.9228162514264337593543950335,而最小的非零值为 +/-0.0000000000000000000000000001。注意 此时,Decimal 数据类型只能在 Variant中使用,也就是说,不能声明一变量为 Decimal 的类型。

不过可用 Cdec 函数,创建一个子类型为 Decimal 的 Variant。 这样就对了。Decimal类型消除了发生在各种浮点运算中的舍入误差,并可以准确地表示28个小数位。

参考资料来源:百度百科-Decimal

decimal sql 怎么写

decimal(3,2),有效长度为3,小数位占2位

CREATE TABLE test(

num decimal(3,2)

)

GO

INSERT INTO test VALUES(2.247)

INSERT INTO test VALUES(13.5)

INSERT INTO test VALUES(4.347)

INSERT INTO test VALUES(5.147)

-- 执行 会报 溢出错误提示

SQL语言中 [decimal] (28,6) 是什么意思?不用SQL语言怎么实现?

decimal 是数据存储类型

28表示有效长度为28位

6表示小数占6位 不用SQL语言我就不知道怎么实现了

我也很想知道不用SQL语言怎么实现

例:

decimal(2,1),有效长度为2,小数位占1位。

此时,插入数据“12.3”、“12”等会出现“数据溢出错误”的异常;插入“1.23”或“1.2345...”会自动四舍五入成“1.2”;插入“2”会自动补成“2.0”,以确保2位的有效长度,其中包含1位小数。

你不觉得上面说的有问题吗?

期待哪位大牛给你解决吧

(责任编辑:IT教学网)

更多

推荐Oracle认证文章