Sql 货币和数字数据类型之间的差异?

Sql 货币和数字数据类型之间的差异?,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,从实际使用的角度来看,货币和数字数据类型有什么区别。如果一个表的数据类型字段名中有money,比如BreakupAmount,另一个数字类型字段名可能相同,也可能不同,那么是否可以将这两个字段中的条目发布到数据类型为numeric的第三个表中,字段名可能是,也可能不是BreakupAmount?有什么建议吗?金钱与十进制相比没有任何优势。如果在您的货币或数据库架构中,小数点后5位的小数单位无效,只需使用具有适当精度和比例的小数即可 DECLARE @mon1 MONEY, @mon2 MON

从实际使用的角度来看,货币和数字数据类型有什么区别。如果一个表的数据类型字段名中有money,比如BreakupAmount,另一个数字类型字段名可能相同,也可能不同,那么是否可以将这两个字段中的条目发布到数据类型为numeric的第三个表中,字段名可能是,也可能不是BreakupAmount?有什么建议吗?

金钱与十进制相比没有任何优势。如果在您的货币或数据库架构中,小数点后5位的小数单位无效,只需使用具有适当精度和比例的小数即可

DECLARE 
@mon1 MONEY, 
@mon2 MONEY, 
@mon3 MONEY, 
@mon4 MONEY, 
@num1 Numeric(19,6), 
@num2 Numeric(19,6), 
@num3 Numeric(19,6), 
@num4 Numeric(19,6) 

SELECT 
@mon1 = 100, @mon2 = 339, @mon3 = 10000, 
@num1 = 100, @num2 = 339, @num3 = 10000 

SET @mon4 = @mon1/@mon2*@mon3 
SET @num4 = @num1/@num2*@num3 

SELECT @mon4 AS moneyresult, @num4 AS numericresult 

金钱与金钱相比没有任何优势。如果在您的货币或数据库架构中,小数点后5位的小数单位无效,只需使用具有适当精度和比例的小数即可

DECLARE 
@mon1 MONEY, 
@mon2 MONEY, 
@mon3 MONEY, 
@mon4 MONEY, 
@num1 Numeric(19,6), 
@num2 Numeric(19,6), 
@num3 Numeric(19,6), 
@num4 Numeric(19,6) 

SELECT 
@mon1 = 100, @mon2 = 339, @mon3 = 10000, 
@num1 = 100, @num2 = 339, @num3 = 10000 

SET @mon4 = @mon1/@mon2*@mon3 
SET @num4 = @num1/@num2*@num3 

SELECT @mon4 AS moneyresult, @num4 AS numericresult 

不要用钱;1它是专有的,因此移植它很痛苦。它是数十年前Sybase代码博物馆的众多功能之一。还记得UNIX的早期版本吗

2用方言编写代码时,你不需要让说方言的人觉得你像个乡下人。最好使用小数,p,这样就可以使用大小合适的列

3它在后端显示和格式化,带有逗号和美元符号。这违背了分层体系结构的目的

4货币数据类型存在舍入错误

对货币使用一种以上的乘法或除法运算 列将产生严重的舍入错误。一种简单的可视化方法 money算法是在每个 活动比如说,

金额=部分/总金额*总金额 可以使用货币算术重写,如下所示: 金额=总金额/总金额,4*总金额,4

四舍五入到小数点后四位似乎不是问题,直到 您正在使用的数字大于10000


检查这里

不要用钱;1它是专有的,因此移植它很痛苦。它是数十年前Sybase代码博物馆的众多功能之一。还记得UNIX的早期版本吗

2用方言编写代码时,你不需要让说方言的人觉得你像个乡下人。最好使用小数,p,这样可以使用大小合适的列

3它在后端显示和格式化,带有逗号和美元符号。这违背了分层体系结构的目的

4货币数据类型存在舍入错误

对货币使用一种以上的乘法或除法运算 列将产生严重的舍入错误。一种简单的可视化方法 money算法是在每个 活动比如说,

金额=部分/总金额*总金额 可以使用货币算术重写,如下所示: 金额=总金额/总金额,4*总金额,4

四舍五入到小数点后四位似乎不是问题,直到 您正在使用的数字大于10000


选中此处

您对数据类型的选择将取决于相关信息所需的精度。
尽管顾名思义,货币数据类型的设计有明显的原因,但它仅限于小数点后四位,这就是为什么数字数据类型经常受到青睐。

您对数据类型的选择将取决于相关信息所需的精度。 尽管顾名思义,Money数据类型的设计有明显的原因,但它仅限于小数点后四位,这就是为什么数字数据类型经常受到青睐的原因