共用方式為


使用貨幣資料

MicrosoftSQL Server 會使用兩種資料類型儲存貨幣資料或貨幣值:money 和 smallmoney。這些資料類型可以使用以下任一種貨幣符號。

貨幣符號資料表,十六進位值

貨幣資料不必括在單引號 (') 中。您必須記住,在指定前面有貨幣符號的貨幣值時,SQL Server 不會儲存任何與符號相關聯的貨幣資訊,它只會儲存數值。例如,若要指派「100 元」一值給變數,您可以執行下列:

DECLARE @dollars AS money
SET @dollars = $100
SELECT @dollars

所傳回的值是 100.0000,且沒有任何貨幣符號。

如果將物件定義為 money,它最多可包含 19 位數,其中 4 位數可以在小數點右邊。這種物件使用 8 個位元組來儲存資料。因此 money 資料類型的有效位數是 19、小數位數是 4,而長度是 8。

money 及 smallmoney 限制為四個小數位數。如果需要更多小數位數,請使用 decimal 資料類型。

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

雖然 money 或 smallmoney 資料類型的顯示格式包括逗號區隔字元,但在這類常數中不允許使用逗號區隔字元。您只能在明確轉換成 money 或 smallmoney 的字元字串中指定逗號區隔字元。例如:

USE tempdb;
GO
CREATE TABLE TestMoney (cola INT PRIMARY KEY, colb MONEY);
GO
SET NOCOUNT ON;
GO

-- The following three INSERT statements work.
INSERT INTO TestMoney VALUES (1, $123.45);
GO
INSERT INTO TestMoney VALUES (2, $123123.45);
GO
INSERT INTO TestMoney VALUES (3, CAST('$444,123.45' AS MONEY) );
GO

-- This INSERT statement gets an error because of the comma
-- separator in the money string.
INSERT INTO TestMoney VALUES (3, $555,123.45);
GO
SET NOCOUNT OFF;
GO
SELECT * FROM TestMoney;
GO