money 和 smallmoney (Transact-SQL)

代表货币或货币值的数据类型。

数据类型

范围

存储

money

-922,337,203,685,477.5808 到 922,337,203,685,477.5807

8 字节

smallmoney

-214,748.3648 到 214,748.3647

4 字节

注释

money 和 smallmoney 数据类型精确到它们所代表的货币单位的万分之一。

用句点分隔局部货币单位(如美分)和总体货币单位。 例如,2.15 表示 2 美元 15 美分。

这些数据类型可以使用下列任意一种货币符号。

货币符号表,十六进制值

货币数据不需要用单引号 (') 引起来。 请务必记住虽然您可以指定前面带有货币符号的货币值,但 SQL Server 不存储任何与符号关联的货币信息,它只存储数值。

转换 money 数据

如果将整型数据类型转换为 money,则假设采用货币单位。 例如,整数值 4 被转换为相当于 4 个货币单位的 money 值。

下面的示例将 smallmoney 和 money 值分别转换为 varchar 和 decimal 数据类型。

DECLARE @mymoney_sm smallmoney = 3148.29,
        @mymoney    money = 3148.29;
SELECT  CAST(@mymoney_sm AS varchar) AS 'SM_MONEY varchar',
        CAST(@mymoney AS decimal)    AS 'MONEY DECIMAL';

下面是结果集:

SM_MONEY VARCHAR          MONEY DECIMAL
------------------------------ ----------------------
3148.29                        3148  
(1 row(s) affected)

请参阅

参考

ALTER TABLE (Transact-SQL)

CAST 和 CONVERT (Transact-SQL)

CREATE TABLE (Transact-SQL)

数据类型 (Transact-SQL)

DECLARE @local\_variable (Transact-SQL)

SET @local\_variable (Transact-SQL)

sys.types (Transact-SQL)