適用於:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
分析平台系統(PDW)
Microsoft Fabric 中的 SQL 資料庫
代表金融或貨幣值的資料類型。
Remarks
| 數據類型 | Range | 儲存體 |
|---|---|---|
| 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 個位元組 |
money 和 smallmoney 資料類型的精確度可達它們所代表之金融單位的萬分之一。 針對 Informatica,money 和 smallmoney 資料類型的精確度可達它們所代表之金融單位的百分之一。
句點可用來分隔局部的貨幣單位 (如分,Cent) 與完整的貨幣單位。 例如, 2.15 指定 2 美元和 15 美分。
這些資料類型可以使用以下任一種貨幣符號。
| Symbol | Currency | 十六進位值 |
|---|---|---|
| $ | 美元符號 | 0024 |
| ¢ | 分號 | 00A2 |
| £ | 英鎊符號 | 00A3 |
| ¤ | 貨幣標誌 | 00A4 |
| ¥ | 日圓符號 | 00A5 |
| ৲ | 孟加拉盧比標記 | 09F2 |
| ৳ | 孟加拉盧比標誌 | 09F3 |
| ฿ | 泰國泰銖貨幣符號 | 0E3F |
| ៛ | 高棉瑞爾貨幣符號 | 17DB |
| ₠ | 歐元貨幣符號 | 20A0 |
| ₡ | 結腸徵 | 20A1 |
| ₢ | 克魯塞羅標誌 | 20A2 |
| ₣ | 法國法郎符號 | 20A3 |
| ₤ | 里拉標誌 | 20A4 |
| ₥ | 磨坊招牌 | 20A5 |
| ₦ | 奈拉符號 | 20A6 |
| ₧ | 比塞塔標誌 | 20A7 |
| ₨ | 盧比符號 | 20A8 |
| ₩ | Won 標誌 | 20A9 |
| ₪ | 新謝克爾符號 | 20AA |
| ₫ | 咚號 | 20AB |
| € | 歐洲標誌 | 20AC |
| ₭ | Kip 標誌 | 20AD |
| ₮ | 圖格里克標誌 | 20AE |
| ₯ | 德拉克瑪標誌 | 20AF |
| ₰ | 德文佩尼標誌 | 20B0 |
| ₱ | 比索符號 | 20B1 |
| ﷼ | 里亞爾符號 | FDFC |
| ﹩ | Small Dollar 符號 | FE69 |
| $ | 全角貨幣符號 | FF04 |
| ¢ | 全角 Cent 符號 | FFE0 |
| £ | 全角磅符號 | FFE1 |
| ¥ | 全角日元符號 | FFE5 |
| ₩ | 全角獲勝符號 | FFE6 |
您不需要以單引號 (') 括住貨幣或貨幣數據。 雖然您可以指定貨幣符號前面的貨幣值,但 SQL Server 不會儲存與符號相關聯的任何貨幣資訊,但只會儲存數值。
Warning
當將貨幣值儲存為 money 和 smallmoney 時,您可以透過截斷來體驗四捨五入錯誤。 如果您的貨幣或貨幣值用於計算中,請避免使用此數據類型。 請改用 具有至少四個小數位數的小數位數的十進位 數據類型。
轉換貨幣數據
當您從任何整數資料類型轉換成 money 時,會假設單位是貨幣單位。 例如,的 4 整數值會 轉換成相當於 4 個貨幣單位的貨幣 。
下列範例會分別將 smallmoney 和 money 值轉換成 varchar 和 decimal 資料類型。
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