Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Относится к:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Система аналитической платформы (PDW)
SQL база данных в Microsoft Fabric
Типы данных, представляющие денежные (валютные) значения.
Remarks
| Тип данных | Range | Storage |
|---|---|---|
| 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 имеют точность до одной сотой денежной единицы, которую они представляют.
Чтобы отделить дробные денежные единицы, например центы, от целых денежных единиц, используйте запятую. Например, 2.15 указывает 2 доллара и 15 центов.
Для этих типов данных может использоваться любой из следующих символов валют.
| Symbol | Currency | Шестнадцатеричное значение |
|---|---|---|
| $ | Знак доллара | 0024 |
| ¢ | Знак цента | 00A2 |
| £ | Решётка | 00A3 |
| ¤ | Знак валюты | 00A4 |
| ¥ | Знак йены | 00A5 |
| ৲ | Бенгали рупийный знак | 09F2 |
| ৳ | Знак Бенгали Рупии | 09F3 |
| ฿ | Символ валюты Тайского Бата | 0E3F |
| ៛ | Символ валюты «Кхмер Риэль» | 17DB |
| ₠ | Знак валюты евро | 20A0 |
| ₡ | Двоеточие | 20A1 |
| ₢ | Знак Крузейро | 20A2 |
| ₣ | Французский знак Франка | 20A3 |
| ₤ | Знак лиры | 20A4 |
| ₥ | Знак мельницы | 20A5 |
| ₦ | Знак Найра | 20A6 |
| ₧ | Знак песеты | 20A7 |
| ₨ | Знак рупий | 20A8 |
| ₩ | Знак Вон | 20A9 |
| ₪ | Новый знак Sheqel | 20AA |
| ₫ | Знак донг | 20AB |
| € | Знак евро | 20AC |
| ₭ | Знак Кип | 20AD |
| ₮ | Знак Тугрика | 20AE |
| ₯ | Знак драхмы | 20AF |
| ₰ | Немецкий знак Пенни | 20B0 |
| ₱ | Знак песо | 20B1 |
| ﷼ | Риальный знак | FDFC |
| ﹩ | Маленький знак доллара | FE69 |
| $ | Знак доллара полной ширины | FF04 |
| ¢ | Знак Цента полной ширины | FFE0 |
| £ | Знак фунта полной ширины | FFE1 |
| ¥ | Знак йены полной ширины | FFE5 |
| ₩ | Знак "Полная ширина" | FFE6 |
Не нужно заключать денежные или денежные данные в одинарные кавычки ('). Хотя вы можете указать денежные значения, предшествующие символу валюты, SQL Server не сохраняет ни одну валюту, связанную с символом, она сохраняет только числовое значение.
Warning
При хранении денежных значений в виде денег и небольших денег можно столкнуться с округлением ошибок. Избегайте использования этого типа данных, если в вычислениях используются ваши деньги или денежные значения. Вместо этого используйте десятичный тип данных с по крайней мере четырьмя десятичными разрядами.
Преобразование данных о деньгах
При преобразовании типа данных integer в тип 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