在SQL Server中,货币值的数据类型是什么?
例如:我想存储 $11.23
。
我可以使用货币类型,并且它将存储 $
符号吗?
在SQL Server中,货币值的数据类型是什么?
例如:我想存储 $11.23
。
我可以使用货币类型,并且它将存储 $
符号吗?
DECLARE @Price Decimal(18,2) = 11.23
SELECT FORMAT(@Price,'c','en-US') AS 'CURRENCY IN US Culture'
MONEY
。
money
数据类型仅存储信息,不包含格式:在您的例子中,信息是 11.23
,这就是保存到数据库中的内容。$
是格式的一部分,因此它不会存储到 money
字段中。MONEY
字段和一个用于货币符号/名称的 VARCHAR
字段。money
不太有用,因为它不会存储任何货币信息。它只是一个小数类型,比decimal
精度低。它也不会允许您指定精度,例如当值只允许有2个小数位时。 21.3455 $
是什么意思? - Panagiotis Kanavos我认为存储货币的最佳方式是使用NUMERIC或DECIMAL数据类型,因为这些值参与计算。如果我们使用NVARCHAR允许存储符号(如$),则在WHERE子句中使用时会导致额外的计算成本。
我们可以根据需要选择精度和比例。
在SQL中应该使用DECIMAL(,)
或者NUMERIC
。
例如:DECIMAL(20,2)