money 和 smallmoney (Transact-SQL)

適用於:SQL ServerAzure SQL DatabaseAzure SQL 受控執行個體Azure Synapse AnalyticsAnalytics Platform System (PDW)

代表金融或貨幣值的資料類型。

備註

資料類型 範圍 儲存體
money -922,337,203,685,477.5808 到 922,337,203,685,477.5807 (-922,337,203,685,477.58
到 922,337,203,685,477.58 (Informatica)。 Informatica 只支援兩個十進位數,而非四個。)
8 個位元組
smallmoney -214,748.3648 到 214,748.3647 4 個位元組

moneysmallmoney 資料類型的精確度可達它們所代表之金融單位的萬分之一。 針對 Informatica,moneysmallmoney 資料類型的精確度可達它們所代表之金融單位的百分之一。

句點可用來分隔局部的貨幣單位 (如分,Cent) 與完整的貨幣單位。 例如,2.15 是指定 2 元又 15 分。

這些資料類型可以使用以下任一種貨幣符號。

Table of currency symbols, hexadecimal values

貨幣資料不必括在單引號 (') 中。 您必須記住,在指定前面有貨幣符號的貨幣值時,SQL Server 不會儲存任何與符號相關聯的貨幣資訊,其只會儲存數值。

轉換 money 資料

當您從任何整數資料類型轉換成 money 時,會假設單位是貨幣單位。 例如,整數值 4 轉換成 money 時相當於 4 個貨幣單位。

下列範例會分別將 smallmoneymoney 值轉換成 varchardecimal 資料類型。

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)