SQL Server中“货币”的数据类型是什么?

sms*_*msh 3 sql-server

SQL Server中货币值的数据类型是什么。

例如:我要存储$11.23

我可以使用货币类型,并且还会存储$符号吗?

Alf*_*med 5

DECLARE @Price Decimal(18,2) = 11.23
SELECT FORMAT(@Price,'c','en-US') AS 'CURRENCY IN US Culture'
Run Code Online (Sandbox Code Playgroud)


Pao*_*olo 4

回答标题中的问题,货币的数据类型是MONEY

数据类型money将仅存储信息,而不存储格式:在您的示例中,信息就是11.23保存到数据库中的信息。

$符号是格式的一部分,因此不会存储到字段中money

通常的解决方案是有一个MONEY金额字段和一个VARCHAR货币符号/名称字段。

  • “money”没有用,因为它“不”存储任何货币信息。它只是一种精度低于“decimal”的十进制类型。它还*不允许*允许您指定精度,例如,当值只允许有 2 位小数时。“21.3455 $”是什么意思? (3认同)
  • @PanagiotisKanavos,这是你的观点,我的观点不同。如果您需要更改精度和小数位数,则使用其他数据类型,但如果“MONEY”(**了解其规格**)适合,则可以是与任何其他数据类型一样的有效选择。 (2认同)