用money类型不行吗?有专门的货币类型
NUMERIC(22,0)和DECIMAL(22,0)一样的
MONEY和SMALLMONEY数据代表货币或货币值,精确到万分之一,MONEY可包含19位数字其中小数点后可以为4位,在SQL中存储方式与bigint和int完全相同,实用货币数据时,不需要实用"’"单引号,可以使用货币符号,但SQL只储存数值
额。。。- -MSSQL
NUMERIC(22,0)把精确位数改改试下
一、numeric跟decimal同义
1、用于精确存储数值;
2、decimal 数据类型最多可存储 38 个数字,所有数字都能够放到小数点的右边;
3、decimal 数据类型存储了一个准确(精确)的数字表达法,不存储值的近似值。
二、定义 decimal 的列、变量和参数的两种特性如下
1、p 小数点左边和右边数字之和,不包括小数点。如 12345,则 p=5,s=2, 指定精度或对象能够控制的数字个数;
2、s 指定可放到小数点右边的小数位数或数字个数;
3、p 和 s 必须遵守以下规则:0 <= s <= p <= 38;
4、numeric 和 decimal 数据类型的默认最大精度值是 38,在 Transact-SQL 中,numeric 与 decimal 数据类型在功能上等效;
5、当数据值一定要按照指定精确存储时,可以用带有小数的 decimal 数据类型来存储数字。
三、转换 decimal 和 numeric 数据
1、对于 decimal 和 numeric 数据类型,Microsoft® SQL Server™ 将精度和小数位数的每个特定组合看作是不同的数据类型。比如,decimal(5,5) 和 decimal(5,0) 被当作不同的数据类型;
2、在 Transact-SQL 语句中,带有小数点的常量自动转换为 numeric 数据值,且必然使用最小的精度和小数位数。比如,常量 12345 被转换为 numeric 值,其精度为 5,小数位为 3;
3、从 decimal 或 numeric 向 float 或 real 转换会导致精度损失。从 int、smallint、tinyint、float、real、money 或 smallmoney 向 decimal 或 numeric 转换会导致溢出;
4、默认情况下,在将数字转换为较低精度和小数位数的 decimal 或 numeric 值时,SQL Server 使用舍入法。然而,如果 SET ARITHABORT 选项为 ON,当发生溢出时,SQL Server 会出现错误;
5、若仅损失精度和小数位数,则不会产生错误。
bigint 长整型数
binary 二进制
bit 位,比特
char 字符
datetime 日期时间
decimal 十进制
float 浮动
image 图像
int 取整
money 货币
nchar
ntext
numeric 数字,数据
nvarchar 类型
real 复数的实部
smalldatetime
smallint
smallmoney
sql_variant变量结构化查询语言
text 文本
timestamp 时间信息
tinyint 微整型
uniqueidentifier唯一标识符
varbinary 可变二进制
varchar 可变长字符串
有一些不太清楚,可能不够术语,希望有帮助吧
以上就是关于数据库取NUMERIC类型的问题全部的内容,包括:数据库取NUMERIC类型的问题、sql语句中的numeric是什么意思、请问数据库里的类型的这几个英语是什么意思等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)