货币列的货币,十进制或数字

Mig*_*ura 4 sql sql-server

我正在创建一个SQL表来保存事务:

create table dbo.TRANSACTIONS
(
  Id int identity not null,
  Amount money not null
);
Run Code Online (Sandbox Code Playgroud)

对于货币(我使用欧元),我应该使用金钱,小数或数字吗?

我已经看到这三个应用于货币列,所以我不再确定了.

金钱将是明显的选择...但我已经看到了十进制和数字.

顺便说一下,我正在使用SQL Server 2012.

谢谢

pet*_*ter 6

首先,Decimal和Numeric具有相同的功能(关于它的MSDN信息)

要回答新问题钱VS十进制,已经有一个关于它的Stackoverflow问题:你应该在SQL Server中选择MONEY或DECIMAL(x,y)数据类型吗? - 简短的回答是:

从来没有你应该使用钱,它不精确,它是纯垃圾,总是使用十进制/数字

通过SQLMenace

  • 在表中,您可以看到只有当精度为9或更低时,才会使用5个存储字节,这使得`s`为4时最多只能使用99,999。我不会在这里进行微优化,而只是选择最常见的值。 (2认同)