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 美分。

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

符號 貨幣 十六進位值
$ 貨幣符號 0024
¢ Cent 符號 00A2
英鎊 磅號 00A3
¤ 貨幣符號 00A4
¥ 日元符號 00A5
孟加拉盧比標記 09F2
孟加拉盧比標誌 09F3
฿ 泰國泰銖貨幣符號 0E3F
高棉瑞爾貨幣符號 17DB
歐元貨幣符號 20A0
冒號 20A1
克魯塞羅標誌 20A2
法國法郎符號 20A3
里拉符號 20A4
磨坊標誌 20A5
文格符號 20A6
Peseta 符號 20A7
Rs 盧比符號 20A8
已贏號 20A9
新謝克爾符號 20AA
董符號 20AB
歐元標誌 20AC
Kip 符號 20AD
圖格裡克符號 20AE
Drachma 符號 20AF
德文佩尼標誌 20B0
比索符號 20B1
里亞爾符號 FDFC
Small Dollar 符號 FE69
全角貨幣符號 FF04
全角 Cent 符號 FFE0
英鎊 全角磅符號 FFE1
¥ 全角日元符號 FFE5
全角獲勝符號 FFE6

您不需要以單引號 (') 括住貨幣或貨幣數據。 雖然您可以指定貨幣符號前面的貨幣值,但 SQL Server 不會儲存與符號相關聯的任何貨幣資訊,但只會儲存數值。

警告

當將貨幣值儲存為 moneysmallmoney 時,您可以透過截斷來體驗四捨五入錯誤。 如果您的貨幣或貨幣值用於計算中,請避免使用此數據類型。 請改用 具有至少四個小數位數的小數位數的十進位 數據類型。

轉換貨幣數據

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

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

DECLARE @mymoney_sm SMALLMONEY = 3148.29,
    @mymoney MONEY = 3148.29;

SELECT CAST(@mymoney_sm AS VARCHAR(20)) AS 'SM_MONEY VARCHAR(20)',
    CAST(@mymoney AS DECIMAL) AS 'MONEY DECIMAL';

以下為結果集。 因為範例中的十進位類型沒有數字數,因此會截斷值。

SM_MONEY VARCHAR(20)           MONEY DECIMAL
------------------------------ ----------------------
3148.29                        3148