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