money and smallmoney (Transact-SQL)
Dotyczy:sql Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL Database w usłudze Microsoft Fabric
Typy danych reprezentujące wartości pieniężne lub walutowe.
Uwagi
Typ danych | Zakres | Składowanie |
---|---|---|
|
-922,337,203,685,477,5808 do 922,337,203,685,477.5807 (-922,337,203,685,477,588 do 922,337,203,685,477,58 dla Informatica. Informatica obsługuje tylko dwie liczby dziesiętne, a nie cztery. |
8 bajtów |
małe | -214,748.3648 do 214,748.3647 | 4 bajty |
Typy danych i małych są dokładne w dziesiątej tysięcy jednostek pieniężnych, które reprezentują. Dla Informatica i małych typy danych są dokładne dla jednej setnej jednostek pieniężnych, które reprezentują.
Użyj okresu, aby oddzielić częściowe jednostki pieniężne, takie jak centy, od całych jednostek pieniężnych. Na przykład 2.15
określa 2 dolary i 15 centów.
Te typy danych mogą używać dowolnego z następujących symboli waluty.
Symbol | Waluta | Wartość szesnastkowa |
---|---|---|
$ | Znak dolara | 0024 |
¢ | Znak centa | 00A2 |
£ | Znak funta | 00A3 |
¤ | Znak waluty | 00A4 |
¥ | Znak jena | 00A5 |
৲ | Rupia bengalska | 09F2 |
৳ | Znak rupii bengalskiej | 09F3 |
฿ | Tajlandzki symbol waluty | 0E3F |
៛ | Symbol waluty Khmer Riel | 17DB |
₠ | Znak waluty euro | 20A0 |
₡ | Znak dwukropka | 20A1 |
₢ | Znak Cruzeiro | 20A2 |
₣ | Francuski znak franka | 20A3 |
₤ | Znak Lira | 20A4 |
₥ | Znak młyna | 20A5 |
₦ | Znak Naira | 20A6 |
₧ | Znak Peseta | 20A7 |
Rs | Znak rupii | 20A8 |
₩ | Znak wygranej | 20A9 |
₪ | Nowy znak Sheqel | 20AA |
₫ | Znak dongu | 20AB |
€ | Znak euro | 20AC |
₭ | Znak Kip | 20AD |
₮ | Znak Tugrik | 20AE |
₯ | Znak drachma | 20AF |
₰ | Niemiecki znak Penny | 20B0 |
₱ | Znak peso | 20B1 |
﷼ | Znak Rial | FDFC |
﹩ | Mały znak dolara | FE69 |
$ | Znak dolara o pełnej szerokości | FF04 |
¢ | Znak centowy o pełnej szerokości | FFE0 |
£ | Znak funta o pełnej szerokości | FFE1 |
¥ | Znak jena o pełnej szerokości | FFE5 |
₩ | Znak o pełnej szerokości Won | FFE6 |
Nie musisz ująć waluty ani danych pieniężnych w pojedynczy cudzysłów ('
). Chociaż można określić wartości pieniężne poprzedzone symbolem waluty, program SQL Server nie przechowuje żadnych informacji o walucie skojarzonych z symbolem, ale przechowuje tylko wartość liczbową.
Ostrzeżenie
Błędy zaokrąglania można napotkać za pomocą obcinania, podczas przechowywania wartości pieniężnych i małych. Unikaj używania tego typu danych, jeśli w obliczeniach są używane wartości pieniężne lub walutowe. Zamiast tego użyj typu danych dziesiętnego z co najmniej czterema miejscami dziesiętnymi.
Konwertowanie danych pieniężnych
W przypadku konwersji na pieniądze z typów danych całkowitych przyjmuje się, że jednostki są w jednostkach pieniężnych. Na przykład wartość całkowita 4
jest konwertowana na pieniężne odpowiednik 4 jednostek pieniężnych.
Poniższy przykład konwertuje
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';
Oto zestaw wyników. Ponieważ typ
SM_MONEY VARCHAR(20) MONEY DECIMAL
------------------------------ ----------------------
3148.29 3148